我知道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'。
点不使用duck类型。这可能吗?
修改:根据评论建议,将 del 从功能更改为语句。
答案 0 :(得分:3)
这在Boo中是不可能的。 Boo使用隐式静态类型。因此,所有变量都是基于其范围内的第一个赋值而强类型化的。分配后,变量的类型不会改变。
垃圾收集将确保堆中不再引用的对象将从堆中删除,但它对每种语言的单个变量作用域没有影响。在Boo中,变量不会超出范围,直到定义它的块结束。
Boo中的Duck输入由编译器处理,编译器为其分配静态类型的“object”,然后使用运行时代码来实现底层.NET运行时认为是泛型对象的困境。
答案 1 :(得分:0)
你可以声明一个对象
作为对象 a =“letter_a”
打印一个 “写一封”a = 1 打印一个 1
我比蟒蛇更喜欢嘘!