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 色々と圧倒されて終わった感じでした。

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

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

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

 

Similar Posts:


Leave a Reply

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