duckyオプション
Boo 0.5.2
Booのマイナーリリース。目新しいところでは、duckyオプションの追加が挙げられます。
def add (x, y): return x + y print (add (10, 20)) print (add ("Hello,", "World"))
こんなコードをxxx.booとか保存して
> booc xxx.boo
コンパイルすると、
duck.boo(3,15): BCE0051: Operator '+' cannot be used with a left hand side of type 'System.Object' and a right hand side of type 'System.Object'. 1 error(s).
こんなエラーになりますが、
> booc -ducky xxx.boo
とすると無事、コンパイルが通り、実行すると
30 Hello,World
期待通りの動作をします。duckyオプションを付けると型を明示的に指定しない場合に、duck型として扱います。duck型は実行時にチェックを行いますので、ほとんどスクリプト言語と変わらない使い方が出来るようになりますね。