Julia:为类型实现标准数学运算

2024-01-08

有没有办法在 julia 中为用户创建的类型实现基本算术

例如:

type Foo
    bar::Float32
    foo::Int32
end
a = Foo(3.23,23)
b = Foo(4.56,54)
c = a+b

如果可能的话,我怎样才能做到这一点? 提前致谢


您需要显式导入 Base 函数,以便在其上添加您自己的类型的方法。我不确定这是否是最好的方法,但以下内容将使您能够将两个 Foo 添加在一起。

type Foo
bar::Float32
foo::Int32
end

import Base: +
+(a::T, b::T) where {T<:Foo} = Foo(a.bar+b.bar, a.foo+b.foo)

a = Foo(3.23,23)
b = Foo(4.56,54)
c = a+b
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Julia:为类型实现标准数学运算 的相关文章

随机推荐