删除boo中的变量

时间:2011-06-06 20:48:43

标签: .net python garbage-collection boo

我知道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 从功能更改为语句。

2 个答案:

答案 0 :(得分:3)

这在Boo中是不可能的。 Boo使用隐式静态类型。因此,所有变量都是基于其范围内的第一个赋值而强类型化的。分配后,变量的类型不会改变。

垃圾收集将确保堆中不再引用的对象将从堆中删除,但它对每种语言的单个变量作用域没有影响。在Boo中,变量不会超出范围,直到定义它的块结束。

Boo中的Duck输入由编译器处理,编译器为其分配静态类型的“object”,然后使用运行时代码来实现底层.NET运行时认为是泛型对象的困境。

答案 1 :(得分:0)

你可以声明一个对象

  

作为对象   a =“letter_a”

     打印一个   “写一封”

     

a = 1   打印一个   1

我比蟒蛇更喜欢嘘!