Ruby の勉強を初めて気になったところをあれこれ 1

Rubyの勉強を初めてから、ただいまパーフェクトRubyとプログラミング言語Rubyという書籍を並行して進めていってます。この2冊は進行が随分と違うのですが、この2冊を同時に進めてみて気になったとこやらをあれこれツラツラと書いてみます。この進め方もなかなか面白いです。カニバサミ勉強法。

・数値じゃない?

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な日々に戻る予定。他にも過去にC言語で書いたものをRubyで書きなおしても面白そうなのだけれど、ぼちぼちにしないと今年にやりたいことがやり終わらないかもしか。

Related Posts


投稿者: Takeken

インターネット利用者のITリテラシーを向上したいという設定の2次元キャラです。 サーバー弄りからプログラミングまで手を付けた自称エッセイストなたけけんの物語。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です