gpt4 book ai didi

types - 添加到 Julia 中的集合时重载对象比较?

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

有没有办法重载Base.Set是否在 Julia 中进行对象比较?

我试过重载 isequal== ,但我的对象在它们应该相同时仍然​​被标记为不同。

例如。

type Test
x
y
end

function ==(a::Test, b::Test)
return a.x == b.x && a.y == b.y
end

Set([Test(2,3), Test(2,3)])


Set([Test(2,3),Test(2,3)])

最佳答案

有一个用于复合类型比较的有用包,AutoHashEquals :

using AutoHashEquals

@auto_hash_equals type Test
x
y
end

X = Test(2, 3)
Y = Test(2, 3)
Z = Test(1, 3)

X == Y # = true
X == Z # = false

Set([X, Y, Z]) # = Set([Test(2,3),Test(1,3)])

然而,就像@Gnimuc-K 指出的那样 “当可变类型用作不可变记录时,此宏仅对可变类型有用。”

关于types - 添加到 Julia 中的集合时重载对象比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34936593/

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