gpt4 book ai didi

julia - 在 Julia 中将类型参数作为函数参数引用

转载 作者:行者123 更新时间:2023-12-04 17:48:03 24 4
gpt4 key购买 nike

我正在尝试在 Julia 中创建一个“整数 mod p”类型。 (我确定已经有一个包,这只是个人练习。)

type Intp{p}
v::Int8
end

function add(a::Intp{p},b::Intp{p})
return Intp{p}((a.v + b.v) % p)
end

定义 add 时出现错误,提示 p 未定义。如何从 add 内部引用 p?

(注意:我可以做类似的事情
type Intp
v::Int8
p
end

function add(a::Intp,b::Intp)
return Intp((a.v + b.v) % a.p,p)
end

但这需要将 p 与每个数字一起存储。我觉得这会是低效的,而且我认为它会非常低效。我宁愿 p 只为类型指定一次,并在将该类型的事物作为参数的函数中引用。)

最佳答案

您的第一个示例非常接近,但您需要包含 {p}在方法名称和签名之间,如下所示:

function add{p}(a::Intp{p},b::Intp{p})
return Intp{p}((a.v + b.v) % p)
end

否则,您正在为一对 Intp{p} 编写方法。值其中 pp 的当前特定值可能是 - 在您的情况下,恰好没有任何值(value),因此会出现错误消息。所以 Julia 方法的一般签名是:
  • 方法名称
  • { } 中的类型参数(可选)
  • ( ) 中的参数
  • 关于julia - 在 Julia 中将类型参数作为函数参数引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26320124/

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