Ruby超入門 2周目 CHAPTER 2
『ゼロからわかる Ruby 超入門 (かんたんIT基礎講座) 』
※上の画像はRuby超入門に出てくる整数オブジェクトさん
べこ🐄 (@becolomochi) | Twitterさんのイラストでgithubで公開してくれてるんだよ!
てな感じで2周目を開始したので記録していきまーす。
開始日:10/13
今回はCHAPTER 2 かんたんなプログラムを書くの中から気になったところを。
足し算引き算とか整数少数とか.to_i .to_sとか変数の章なんだけど、それでも「へー」って思えるところがあるのは流石だなって感じ。
プログラムの途中で一時停止してirb を使う
require "irb"
a = 1
binding.irb
puts a
1周目で見事に読み飛ばしていて頭の片隅にもなかった…
面白いなと思ったので。プログラムを一時停止させてirbが使えるっていう。
putsの前でプログラムを一時停止してirbが起動するので、例えばここでa = 100って変数に代入してあげてからexitでirbを終了させると、一時停止していたプログラムが動き出して、puts a で100が表示されるんだよね。なかなかおもしろいなーと思った。
binding irbをプログラムの一時停止させたいところに書いて、それより前にrequire "irb"を書いておく。
次は
p メソッドを使って変数の中身を表示させる
ほほう… またまた… 記憶にない… pメソッドなんて頭の片隅にもない…
a = 3 / 2
b = a * 2
puts b
これだとputs bで2になってしまうよね。あれあれ何でだろ?ってときにpメソッドなんですね。使い方としては…
a = 3 / 2
p a
b = a * 2
puts b
変数aの次にp aで変数aに何が代入されてるのかが見れちゃうんですね。これを実行するとp aは1になってる。そうだよねー。整数だもんなー。変数aへ 3.0 / 2.0を代入しないと意図した3にはならないよねーって気がつけちゃうわけですね。これは便利。
で、pメソッドじゃなくてputsでいいんじゃね?って思ったけど、pメソッドはデバッグ用に使うと。pメソッドとputsメソッドでは表示も異なる場合があるっぽい。
なるほどねぇ〜!
次はエラーメッセージ!ここも改めて読んでみるとフワッと読んでググってたりしたのがハッキリするね。
エラーメッセージの読み方
hi.rb:1:in `<main>': undefined method `put' for main:Object
(NoMethodError)
hi.rb
これは実行したファイル名
:1
これは何行目かってやつね。この場合1行目
undefined method `put'
putなんてメソッドは定義されてないぞってやつね。
(NoMethodError)
これがエラーの名前
xy.rb:2:in `<main>': undefined local variable or method `y' for
main:Object (NameError)
この場合は、実行したファイルがxy.rbで2行目でエラーが起きてるよ。でもって、undefined local variable or method `y' なのでyなんて変数もしくはメソッドは定義されていませんよってことになるのね。
variableが変数って意味を私は今知りました…
続いてのエラーはこれ
Traceback (most recent call last):
ruby: No such file or directory -- ab.rb (LoadError)
No such file or directoryはそんなファイルやディレクトリ御座いませんよ!
1周やっとけば良いんじゃね?入門だしと甘くみていたけど、まったくちゃんと読んでない自分に恐怖すら覚える… でも面白さはなんだか増す感じがするかな。
ということで『ゼロからわかる Ruby 超入門 (かんたんIT基礎講座) 』の2周目はこんな感じで復習しながら進めて見ようと思います。