普段は型推論つきの静的型付け言語で、 as duck とした部分だけ Ruby とか ObejctiveC みたいな世界に突入する、と。
i@u ~/test/boo> booi duck.boo duck.boo(6,9): BCE0019: Boo.Lang.Compiler.CompilerError: 'Length' is not a member of 'System.Object'. i@u ~/test/boo> cat duck.boo i = 1 // i = "1" // これはできない。 i は int になってるから。 o as object = 1 o = "1" // print o.Length // これはできない。 object に size というメソッドが無いから。 d as duck = 1 d = "1" // 大丈夫なのよさ。 print d.Length // 大丈夫なのよさ。 i@u ~/test/boo> booi duck.boo 1
うん素晴らしい。