gpt4 book ai didi

methods - 如何向 Julia 中的现有函数添加方法?

转载 作者:行者123 更新时间:2023-12-01 23:22:59 26 4
gpt4 key购买 nike

所以在 Julia 中,每个函数都有方法。

以下是有道理的:

f(x, y) = x + y
f(x) = x + 2

这提供了两个附加到此函数的方法。

但是假设我想向现有的 Julia 函数添​​加一个方法,而不是覆盖它。

例如:
a = [2, 3]
push!(a, 4)
a == [2, 3, 4] # true

type Node
children :: Array{Node}
end

function push!(base :: Node, child :: Node)
push!(base.children, child)
end

这就是我想做的;扩展现有功能以适本地处理新类型。但这会引发错误。这可能吗?

最佳答案

我刚刚解决了,所以我想还是发布这个问题,以防将来人们遇到麻烦。

您必须显式导入一个函数才能扩展它。

所以这会起作用:

import Base.push!

function push!(base :: Node, child :: Node)
push!(base.children, child)
end

关于methods - 如何向 Julia 中的现有函数添加方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29158453/

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