Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
这个“^”操作符在Dart中是什么意思?_Dart - Fatal编程技术网

这个“^”操作符在Dart中是什么意思?

这个“^”操作符在Dart中是什么意思?,dart,Dart,这个^操作符在Dart中是什么意思 int get hashCode => cityName.hashCode ^ temperatureCelsius.hashCode; 在包括Dart在内的许多语言中,^运算符表示按位异或操作 从概念上讲,这是将其两个操作数转换为长度相等的位字符串,并对每对位应用异或逻辑 例如: 假设我们的输入是数字7和数字14。以下是它们的二进制(位字符串)表示: 7: 0111 14: 1110 在这种情况下,结果将是: 9: 1001 在您的示例中,这

这个
^
操作符在Dart中是什么意思

int get hashCode => cityName.hashCode ^ temperatureCelsius.hashCode;

在包括Dart在内的许多语言中,
^
运算符表示按位异或操作

从概念上讲,这是将其两个操作数转换为长度相等的位字符串,并对每对位应用异或逻辑

例如:

假设我们的输入是数字7和数字14。以下是它们的二进制(位字符串)表示:

 7: 0111
14: 1110
在这种情况下,结果将是:

 9: 1001
在您的示例中,这似乎用于从其他两个哈希值创建哈希。这是组合两个散列值的“默认”方式,原因如下:


运算符是用户定义的二进制运算符。类可以将其定义为它想要的任何含义。 一些内置Dart类有一个
^
操作符,即
int
bool

对于
bool
^
运算符是异或运算,如果且仅当其中一个操作数为
true
(另一个操作数则为
false
,因为它必须是
bool

对于
int
^
运算符是按位异或运算。整数被解释为其2的补码表示的位,并且位于同一位置的两个操作数的位是异或的,因此当且仅当两个位中正好有一位为1时,结果为1。 例如:

var x=27;//位:…0011011
变量y=37;//位:…0101
变量z=x^y;//位:…011110-aka 62

非平台类也可以实现操作符,如中。

这是否回答了您的问题@Arthuratout-那是给Python的。。。Dart中可能不一样。我可以向你保证Dart中也一样:-)。Doc:@Arthuratout-你是对的,但是发表一条指向Dart帖子的评论比发表Python帖子要好。。。