Ruby で無名クラスを定義する
class
ではなくて Class.new
から定義すればよいみたい。
[コード]
# Class.new でクラスを定義 # メソッドはブロック内で定義する X = Class.new { def self.name "X" end def func puts "homu" end } puts X.name x = X.new x.func def twice a, b a + b end # 引数内でクラスを定義して渡したりとか puts twice(Class.new { def + a 10 + a end }.new, 4)
[出力]
X homu 14
引数内でクラスを定義したい場合は便利。