在Dart的一些代码示例中看到了波浪号。我已经看到它在C ++中用作析构函数,可以在其中调用它来删除对象的实例,它在Dart中具有相同的功能吗? Java中有等效的符号吗?
答案 0 :(得分:5)
~
运算符是Dart对象上的可重载运算符,因此它可以表示您想要的任何内容。在平台库中,唯一的用途是int.operator~
,它按位取反(类似于C,Java和JavaScript中类似的整数运算符)。
正如GüntherZöchbauer所提到的,~
也出现在可重载的~/
运算符中,平台库将其num.operator~/
用于整数除法。默认情况下,~
或~/
运算符之间没有关系。
因此,这并不意味着“破坏”。 Dart不允许显式销毁,也不允许任何销毁-语言规范没有说明对象死亡的时间。 (实现垃圾收集使用代码无法再看到的对象,以保留内存。)
答案 1 :(得分:3)
Dart不支持析构函数
https://www.dartlang.org/guides/language/language-tour#operators
~
当前仅用于
~/
除,返回整数结果
和~/=
整数除法和赋值。
在Java中并没有真正的等效物。
在Java中,如果将结果赋给一个整数变量(不确定,不是Java开发人员),则结果为整数