初めてのRuby(続き)
「初めてのRuby」の残りを読んで,新たに知ったことなど.
ヒアドキュメント.Stringの%メソッドを合わせることで,
長い文字列もすっきり.
今まで何と無駄で読みにくいコードを書いていたのかと.
変数が保持するものは,オブジェクトへの参照.ラベル付け. どこからも参照されなくなるとGCのときに回収される?
nil/falseは偽であること,
変数は大体初期値がnilであること,
論理演算子が真偽値ではなくオペランドを返すことを利用して,
次のような初期化イディオムが使える.
@instance_var ||= some_value
if/for/while/caseは値を返す制御文なので制御式と呼ばれる.
ていうか値を返すのか.
some_var = if some_cond then
value
else
another_value
end
case制御式のためにcase比較演算子===がある.
catch/throwでネストしたループを脱出.
自分はたまに再帰で構文解析とかやるとC++の例外でほぼ同じような事を….
コードブロックをオブジェクトとして扱う.
確かにイテレータメソッドは幾度も使って慣れてきたけど,
Procでコード片をオブジェクトにして渡し,
あとで使うなどということを意識してやったことはなかった.
attr_accessorメソッドで属性定義が簡単にできる.
以下のように書くと,Studentクラスにname/student_idの
getterとsetterが自動で定義される.
class Student
attr_accessor :name, :student_id
def to_s
"#{@name}, \##{@student_id}"
end
end
student = Student.new
student.name = "line"
student.student_id = "1234cs567"
puts student #=> line, #1234cs567
特異メソッド,特異クラス,メタクラスの関係がまだ把握できていない. ここでいう「特異」は”singleton”と訳すと知った. singularかと思ってました.
About this entry
You’re currently reading “初めてのRuby(続き),” an entry on 数奇な因子
- Published:
- 月曜日, 10月 20th, 2008 at 00:16:16
- Author:
- line
- Category:
- book, programming, ruby
Comments are closed
Comments are currently closed on this entry.