.net – 删除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’.
关键是不要使用鸭子类型.那可能吗?
编辑:根据评论建议,将del从函数更改为语句.
解决方法:
这在Boo中是不可能的. Boo使用隐式静态类型.因此,所有变量都是基于其范围内的第一个赋值而强类型化的.分配后,变量的类型不能更改.
垃圾收集将确保堆中不再引用的对象将从堆中删除,但它对每个语言的单个变量作用域没有影响.在Boo中,变量不会超出范围,直到定义它的块结束.
在Boo中输入鸭子是由编译器处理的,编译器为其分配静态类型的“对象”,然后使用运行时代码来实现底层.NET运行时认为是通用对象的困境.
标签:python,net,garbage-collection,boo 来源: https://codeday.me/bug/20190630/1338649.html