Dart 中 ~/ 操作符的名字怎么读
Posted
技术标签:
【中文标题】Dart 中 ~/ 操作符的名字怎么读【英文标题】:How do you read the name of the ~/ operator in Dart 【发布时间】:2020-06-29 09:57:06 【问题描述】:Dart 有一个整数除法运算符,如下所示:~/
final x = 22 ~/ 7; // 3
文档显示它here,但他们没有说它叫什么。我是否使用正确的名称将其称为“整数除法运算符”?我见过其他人把它写成~/
运算符(here 和here),但我不知道如何大声读出来。还有22 ~/ 7
怎么说?
【问题讨论】:
【参考方案1】:您将其用作整数除法 似乎是正确的方式,因为它清楚地传达了含义。
22~/7
也可以说是 22 除以 7 的整数除法
【讨论】:
【参考方案2】:操作员的名字是~/
。它是任何类都可以实现的通用运算符。如果你需要发音,你可以称它为“波浪线运算符”。
~/
对num
/int
/double
进行的运算一般称为“整数除法”或“截断除法”。
其他类也可以实现~/
运算符,它在那里的名称取决于它的作用。如果有的话。
(BigInt
也进行整数除法,我不知道常用的~/
的任何其他实现。
有许多多符号运算符:~/
、>>
、<<
、[]
、[]=
。人们通常以最常见的用法命名它们:移位运算符、索引/索引集运算符,因此默认使用关于~/
的“整数除法运算符”不会不一致,但它可能会产生误导。
(比如说,如果有人受到 C++ 的启发,将 streamController << x
等同于 streamController.add(x)
,那么将其读作“streamController left-shift x` 可能会令人困惑。)
【讨论】:
所以如果你正在为视障人士制作一个文本到语音引擎,当它到达~/
时应该说什么? (例如,假设它正在阅读您的答案。)
我可能会选择“波浪线运算符”。 +
运算符具有作为单个现有数学运算符的优势,因此即使不用于加法,它也被命名为“加号”。 ~/
不是单个运算符,因此读取它是“波浪线”。它没有正式的现有名称,因为它不常用。也就是说,人们确实会调用 >>
和 <<
移位运算符,即使它们不一定用于移位,所以你可以说“整数除法运算符”,可能不会被误解。【参考方案3】:
截断除法运算符
~/
在数字的documentation中被官方称为截除除法运算符,这是我浏览num
源代码发现的:
/**
* Truncating division operator.
*
* If either operand is a [double] then the result of the truncating division
* `a ~/ b` is equivalent to `(a / b).truncate().toInt()`.
*
* If both operands are [int]s then `a ~/ b` performs the truncating
* integer division.
*/
int operator ~/(num other);
注意事项
脱离@dev-aentgs 的回答,我会将22 ~/ 7
解读为“22 除以7 的截断除法”或“22 除以7 然后截断”。
我认为@Irn 的观点是“波浪斜线运算符”可以用于不同的用途,但由于截断或整数除法是 Dart 文档中唯一列出的用途(如果我错了,请纠正我),我'我将把它称为截断除法运算符,直到我有理由不这样做。
【讨论】:
以上是关于Dart 中 ~/ 操作符的名字怎么读的主要内容,如果未能解决你的问题,请参考以下文章