这个“^”操作符在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帖子要好。。。