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型は実行時にチェックを行いますので、ほとんどスクリプト言語と変わらない使い方が出来るようになりますね。