gpt4 book ai didi

julia - 为什么结构和可变结构具有不同的默认相等运算符?

转载 作者:行者123 更新时间:2023-12-04 18:18:13 25 4
gpt4 key购买 nike

我有以下代码:


julia> struct Point
x
y
end

julia> Point(1,2) == Point(1,2)
true

julia> mutable struct Points
x
y
end

julia> Points(1,2) == Points(1,2)
false

为什么两个对象在是普通结构时相等,而在可变结构时不相等?

最佳答案

原因是默认情况下 ==回落到 === .现在顺便===作品是(引用文档):

First the types of x and y are compared. If those are identical, mutable objects are compared by address in memory and immutable objects (such as numbers) are compared by contents at the bit level.



所以对于 Point ,这是不可变的,执行内容的比较(并且在您的情况下是相同的)。虽然 Points是可变的,因此比较传递对象的内存地址,它们是不同的,因为您创建了两个不同的对象。

关于julia - 为什么结构和可变结构具有不同的默认相等运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59274263/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com