[英]How can I add a method to an existing function in Julia?
所以在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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.