小学生のうそが本当になる機能
初めてscalaをみて衝撃をうけたのが、
Traitって機能のwithを使ったMixin。
なんとインスタンスに対してクラス継承するようなことができる。
class Piyo(){ } trait Hoge(){ } var piyohoge = new Piyo with Hoge
みたいに。
つまり、
「俺、昨日、魔法使いがライデイン覚えたぜ!!」
「ライデインは勇者しか使えないんだからうそに決まってるだろーー!!」
っていうべたべたな小学生のうそがまかり通るようだ。
class 魔法使い{ } trait 勇者{ def ライデイン = 〜 } var xxくんちの魔法使い = new 魔法使い with 勇者
見たいな感じだろうか。
魔法使いがclassで勇者はtraitってあたりが強引で、
厳密にはこのたとえはずれているような気もするけど。
って話を昨日、id:kanoukと飲んでる席ですげーだろっていったら、
それ、Rubyでもできますよってあっさり言われてしまった><
くやしさと同時に、やっぱRubyってすげーな。と関心。