2021-01-01から1ヶ月間の記事一覧

メタプログラミングRuby読みメモ 5

6章 コードを記述するコード Kernel#eval Kernel#evalは、ブロックではなくRubyのコードの文字列を受け取る これをコード文字列と呼ぶ eval は渡されたコード文字列を実行する instance_evalとclass_evalもブロックだけでなく、コード文字列も受け取れる Bin…

メタプログラミングRuby読みメモ 4

5章 クラス定義 Ruby の class キーワードはオブジェクトの動作を規定しているだけでなく、実際にコードを実行している クラス(やモジュール)定義の中ではクラスがカレントオブジェクトselfになる カレントクラス Ruby は常にカレントオブジェクトselfを持…

メタプログラミングRuby読みメモ 3

4章 ブロック ブロックはスコープを制御するのに強力なツール ブロックは「呼び出し可能オブジェクト」 Proc や lambda などが含まれる ブロックの基本 ブロックは、波括弧またはdo...endキーワードで定義できる 1行のブロックには波括弧、複数行のブロック…

メタプログラミングRuby読みメモ 2

3章 メソッド 重複問題 コードの重複は間違いを犯すかのせいをはらむ Ruby はいくつか解決方法を持つ 動的メソッド メソッドを動的に呼び出す メソッドを呼び出すには通常はドット記法を使う Object#sendを使って呼び出す方法もある send の第一引数はオブジ…

メタプログラミングRuby読みメモ 1

メタプログラミングRuby読んだメモです。 1章 頭文字M 多くのプログラミング言語では、コンパイラ後は変数やメソッドは実体を失う メモリ上に配置されるだけの存在となる 一方Rubyのような言語は、言語要素が残る 言語要素について尋ねることもできる これは…