我知道boo和Python之间的相似之处只是表面的,但我如何在boo中执行以下Python代码呢?
a = 'a'
del a
a = 1我试过了
a = 'a'
a = null
System.GC.Collect()
System.GC.WaitForPendingFinalizers()
a = 1但是booish告诉我它不能把'int‘转换成'string’。
重点是不要使用鸭子类型。这有可能吗?
编辑:根据评论建议,将del从一个函数改为一个语句。
发布于 2011-06-07 13:11:00
这在Boo中是不可能的。Boo使用隐式静态类型。因此,所有变量都是根据其范围内的第一次赋值强类型的。一旦赋值,变量的类型就不能更改。
垃圾收集将确保不再引用的堆上的对象将从堆中移除,但对每种语言的单个变量作用域没有影响。在Boo中,在定义变量的块结束之前,变量不会超出作用域。
Boo中的鸭子类型由编译器处理,编译器为其分配静态类型的" object“,然后使用运行时代码来影响底层.NET运行时所认为的泛型对象。
发布于 2011-07-18 15:28:02
可以声明为对象。
a作为对象a= "letter_a“
打印“字母a”
A=1打印a 1
比起蟒蛇,我更喜欢嘘声!
https://stackoverflow.com/questions/6257867
复制相似问题