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

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

・オブジェクトは”ポインタのようなもの”らしいけれど

オブジェクトについて理解できていない状態だと説明文のそのまんま、”ポインタのようなもの”としか解釈ができにゃい。
オブジェクト参照」という単元の説明もあったけれど、この結果を見た方が分かりやすい気がすー。ただ、これを見ると”のようなもの”というか、”これはポインタだ”と思っちまいます。
ポインタのことをどれだけ理解しているのかは置いといてね。

irb(main):001:0> a  = "Ruby"
=> "Ruby"
irb(main):002:0> b = c = "Ruby"
=> "Ruby"
irb(main):003:0> a.equal?(b)
=> false
irb(main):004:0> b.equal?(c)
=> true
irb(main):008:0> a == b
=> true

 

・0.0/0.0 は数字ではないけれど

数字とみなすと 0 だのな

irb(main):003:0> num = 0.0/0.0
=> NaN
irb(main):004:0> num
=> NaN
irb(main):006:0> a.to_i
=> 0
irb(main):010:0> a.to_f
=> 0.0

 

・例外処理が初見では分かりにくいぜ

そのまんま。

#!/home/takeken/.rbenv/shims/ruby

begin
  file = File.open('hoge.txt')
rescue
  puts 'Fileがみつかりませぬ'
ensure
  file.close if file
end

 

・例外オブジェクトあれこれ

お手軽だ。今のところ例外を活かしたものが書けていないので使わないとだ。

e.class
[takeken@localhost]$ ./hoge.rb
Error occurred (Errno::ENOENT)
e.message
[takeken@localhost]$ ./hoge.rb
Error occurred (No such file or directory @ rb_sysopen - hoge.txt)
e.backtrace
[takeken@localhost]$ ./hoge.rb
Error occurred (["./hoge.rb:4:in `initialize'", "./hoge.rb:4:in `open'", "./hoge.rb:4:in `<main>'"])

 

・レシーバ・引数なしでメソッドを呼び出すときはカッコを省略できない

そのままの意味です。

 

・UbuntuとOSXの違い

背景があってもフォントが見やすいのは流石で、設定しだいでは両者ともかなり近づくと思うけれど、やっぱり個性があるので違いを感じるなぁ。今はやっぱOSXがイイm9(^^)

Ubuntu

nagatos1

Mac OSX

ss

 

・ブロックとして渡す

こういう書き方もできるみたいで、この辺はあんまり根詰めてやっちゃうとおいらの頭だとパニックしそうだから、だいたいで流しておこうと思う。

#!/home/takeken/.rbenv/shims/ruby

people = %w(Alice Bob Charlie)
block = Proc.new do |name|
  puts name
end
people.each &block

[takeken@localhost]$ ./hoge.rb
Alice
Bob
Charlie

 

・RequireしたファイルのパスはLOADED_FEATURESに追加される

調べてみた。なるほど。

irb(main):001:0> x = p $LOADED_FEATURES

irb(main):002:0> p x.last(1)
["/home/takeken/.rbenv/versions/2.1.5/lib/ruby/2.1.0/rubygems/dependency.rb"]
=> ["/home/takeken/.rbenv/versions/2.1.5/lib/ruby/2.1.0/rubygems/dependency.rb"]

irb(main):003:0> require 'json'
=> true
irb(main):004:0> p x.last(1)
["/home/takeken/.rbenv/versions/2.1.5/lib/ruby/2.1.0/json.rb"]
=> ["/home/takeken/.rbenv/versions/2.1.5/lib/ruby/2.1.0/json.rb"]

 

 

とりあえずパート2はこんなくらいで終わっときます。

Macになったからという訳ではなく、wowowでたまたまスティーブ・ジョブズをやっていたので録っといたのですが、いろいろ詰め込みすぎていて話がよく分からないところが結構多かったなぁ…w 色々と圧倒されて終わった感じでした。

まだ読んでいないけれど、ウォルター・アイザックソンさんの原作の方がやっぱり面白いのだろうなと思うよ。

今のところ映画化、アニメ化された作品で小説よりも面白かった例がない ( ´Д`)σ)Д`)
それはそれで面白い!止まりで。
でもね、単に自分自身が映画やアニメよりも小説のほうが好きってことかもしれないんだな。

自分でも自分自身のことをそんなに知らなかったりするんだからね。

Related Posts


投稿者: Takeken

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

コメントを残す

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