gpt4 book ai didi

julia - 当我在 Julia 中覆盖函数时收到警告?

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

Julia 默认将许多名称导入作用域。当我无意中覆盖其中一个时,有没有办法得到警告?

最佳答案

在模块和 Base 函数的上下文中,如果您覆盖名称,Julia 已经发出警告。请参阅以下适用于 v 0.4.5 的示例:

模块:

在 modA.jl 中:

module modA

export test

function test()
println("modA")
end
end

在 modB.jl 中:
module modB

export test

function test()
println("modB")
end
end

在 REPL 中:
julia> using modA
julia> using modB
WARNING: Using modB.test in module Main conflicts with an existing identifier
julia> test()
"modA"

基本功能 :

在 REPL 中:
julia> function +(x::Float64, y::Float64)
println("my addition")
end

julia> WARNING: module Main should explicitly import + from Base
WARNING: Method definition +(Float64, Float64) in module Base at float.jl:208
overwritten in module Main at none:2.

据我所知,这不适用于用户定义的函数;见下文:
julia> function test(x::Float64, y::Float64)
println("First Definition")
end

julia> test(1.0, 2.0)
First Definition

julia> function test(x::Float64, y::Float64)
println("Second Definition")
end

julia> test(1.0, 2.0)
Second Definition

对于导入的名称,您是否有不同的背景?

关于julia - 当我在 Julia 中覆盖函数时收到警告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36403007/

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