【问题标题】:What does ~ mean in Dart?~ 在 Dart 中是什么意思?
【发布时间】:2019-02-05 16:22:51
【问题描述】:

在 Dart 的一些代码示例中看到了波浪号。我已经看到它在 C++ 中用作析构函数,可以调用它来删除对象的实例 它在 Dart 中具有相同的功能吗? Java中是否有等价符号?

【问题讨论】:

    标签: dart


    【解决方案1】:

    ~ 运算符是 Dart 对象上的可重载运算符,因此它可以表示任何你想要的意思。在平台库中,唯一的用途是 int.operator~,它执行按位求反(类似于 C、Java 和 JavaScript 中的整数运算符)。

    正如 Günther Zöchbauer 所提到的,~ 也出现在可重载的 ~/ 运算符中,平台库将其用作整数除法 num.operator~/。默认情况下,~ 或 ~/ 运算符之间没有关系。

    所以,这并不意味着“破坏”。 Dart 不允许显式销毁或任何销毁 - 语言规范没有说明对象何时死亡。 (实现垃圾收集用户代码再也看不到的对象,以保留内存)。

    【讨论】:

      【解决方案2】:

      Dart 不支持析构函数

      https://www.dartlang.org/guides/language/language-tour#operators

      ~目前仅用于

      ~/除,返回整数结果

      和~/= 整数除法和赋值。

      在 Java 中没有真正的等价物。
      在 Java 中,如果将结果分配给整数变量,则结果是整数(但不确定,不是 Java 开发人员)

      【讨论】:

      • 在 Java 中,如果两个数字都是整数,则结果是整数。它执行整数除法并截断小数部分(点之后的所有内容)。 int a = 2; int b = 3; 和 a/b => 0 如果您不想丢失精度,请将其中一个数字转换为浮点数或双精度数:(double)a/b => 0.66....
      • ~/ 也会截断小数部分。
      • @JohnPankowicz 这就是“返回整数结果”的意思。
      • @GünterZöchbauer - 不,它没有。还有其他语言中的运算符执行舍入以返回整数结果。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-09-15
      • 1970-01-01
      • 2019-06-22
      • 2021-03-28
      • 2011-08-12
      • 2017-06-11
      • 2018-03-05
      相关资源
      最近更新 更多