Ruby の勉強を初めて気になったとこ パート1


 

むむ?と思うところってのはRuby に限った事ではないと思いますが、せっかくなので勉強中にあれれ?と思ったことや、ホホ〜とか、へへ~とか思ったことをざっくりと書いていきます。

パート幾つまで続くかは分かりません。

・数値じゃない?

to_i で数値化しないと、数値を入れようが、zero? そんなメソッド知らんと言われる。

#!/home/takeken/.rbenv/shims/ruby
# coding: utf-8

n = ARGV[0].to_i

if n.zero?
puts '0でした'
elsif n.even?
puts '偶数です'
elsif n.odd?
puts '奇数です'
end

理由はこれ(と思う)

irb(main):001:0> ARGV[0].class
=> NilClass
irb(main):002:0> 1.class
=> Fixnum
irb(main):003:0> ARGV[0].to_i.class
=> Fixnum

 

・こんな感じでもウゴク

何となく、これで動くんだって思ったので登録。
まだまだ慣れてない感じがありあり。
久しぶりにPythonを見て、閉じないんだ!って思うくらい馴染んでない。

#!/home/takeken/.rbenv/shims/ruby
# coding: utf-8

class Hoge
 def moge
  yoge = 'roge'

    case yoge
     when 'roge' then
     'Yes!'
     when 'woge' then
     'no'
     end
 end
end

you = Hoge.new

p you.moge
[takeken@localhost ~]$ ruby test.rb
"Yes!"

 

・ローカル変数の扱いはC言語の時と同じ感じだけれど

プロトタイプ宣言とかなくてクラスはライブラリでまとめてrequireするのがRuby… と思う。
でもRubyをやりだしてJqueryがまだ見れるようになった。

[takeken@localhost ~]$ ruby test.rb
a
Alice
Bob
Carol
"Carol"
""

[takeken@localhost ~]$ cat test.rb
#!/home/takeken/.rbenv/shims/ruby
# coding: utf-8

name = ''

class Hoge

    def tage

        for name in %w(a Alice Bob Carol)
            puts name
        end

        p name
    end
end

hoge = Hoge.new()

hoge.tage

p name

 

であるからして〜、上と下は同じです。
分けて書いてみると変数がどうなっているか分かりやすいのかな。

[takeken@localhost ~]$ ruby test.rb
a
Alice
Bob
Carol
"Carol"
""
[takeken@localhost ~]$ cat test.rb
#!/home/takeken/.rbenv/shims/ruby
# coding: utf-8

require './hoge.rb'

name = ''

hoge = Hoge.new()

hoge.tage

p name
[takeken@localhost ~]$ cat hoge.rb
#!/home/takeken/.rbenv/shims/ruby
# coding: utf-8

class Hoge

    def moge

        languages = %w(Perl Python Ruby)                                                       
        i=0 

        while i < languages.length
            puts "Hello, #{languages[i]}."
            i += 1
        end
    end 

    def tage

        for name in %w(a Alice Bob Carol)
            puts name
        end 

        p name
    end
end

 

・BEGINの扱い。

最初に読み込むBEGIN。実行結果を見てみると!!が出ていないのがわかる。
BEGINにいった後はまた上からだってのが分かりやすいと思ったスクリプト。


#!/home/takeken/.rbenv/shims/ruby
# coding: utf-8

print " and "

END {
print "!!\n"
}

print "World\n"

exit!

BEGIN {
print "Hello"
}

exit!
[takeken@localhost ~]$ ruby hoge.rb
Hello and World

 

・こんなのもありでオモロイ。

irb(main):002:0> printf("%.10f\n", Math.sqrt(2))
1.4142135624
=> nil

 

・エンコードにも色々あるらしい

p Encoding.default_external #デフォルト外部エンコーディング
p Encoding.default_internal #デフォルト内部エンコーディング
p Encoding.locale_charmap #現在のロケール

 

とりあえずパート1はこんな感じ。

近況ですが、ついにMacデビューしたので色々とセットアップに追いやられていて、ここ数日間ほどRubyってなかったのですが、ぼちぼち出来上がりに近づいてきたので、Ubuntuの環境が移行し終わったらまたRubyな日々〜に戻ります。
初心者極まりないですけれどね〜。
今進めている勉強法ですが、ふと思いついたことを書いていくのは昔と変わらないですが、パーフェクトRubyとプログラミング言語Rubyを並行して進めていってて、章立ての仕方というか、プログラミングの進行が随分違う書籍を同時に勧めているのでなかなか面白いですよ。
カニバサミ勉強法です。

過去にC言語で書いたものをRubyで書きなおしても面白そうなのだけれど、ぼちぼちにしないと今年にやりたいことがやり終わらないかもしか。

 

Similar Posts:


Leave a Reply

Your email address will not be published. Required fields are marked *