山本悠滋
2015-08-06 表参道.rb
こういうの↓とか、
こういうの↓が大好きなおおきなおともだちです!
なのでこんな風に長い文字列リテラルを書きたいときは…
"改行\n" + "しよう\n" + "そうしよう\n"
よりも
"改行\n" \ "しよう\n" \ "そうしよう\n"
Hashリテラルも、配列リテラルも!
期間を作るメソッドなども!
def hage 4.days end
そして散らばる定数
class Hoge AAA = 'aaa'.freeze ONE_DAY = 1.day NANTOKA_TABLE = { ... } ... end
これ↓
def hoge a puts a end
と、これ↓
define_method :hoge do|a| puts a end
a = 1 def foo a # エラー! end define_method :foo do a # エラーにならない! end
待てよ… できることが多いということは、 その分オーバーヘッドがあるんじゃね…?
メソッドを動的に定義したいとき、 外のローカル変数にアクセスしなくてもよい時は
eval " def hoge #{なんか動的に変わる部分} end "
のように、evalを使った方が速い!