gpt4 book ai didi

julia - 为什么向我的 Julia 函数添​​加类型会导致 MethodError?

转载 作者:行者123 更新时间:2023-12-04 08:06:52 26 4
gpt4 key购买 nike

我正在从 Python 迁移,对 Julia 还是很陌生,但事实证明,这个很难弄清楚。我希望以后通过 PackageCompiler 编译包以供以后在其他语言中使用,所以我需要能够导出 C 可调用方法。如果我定义以下代码:

module MyModule

export testmethod1
export testmethod2

function testmethod1(x::Cfloat, y::Cfloat)::Cfloat
return x^y*4
end

function testmethod2(x, y)
return x^y*4
end

end
并调用 println(MyModule.testmethod2(2.3, 3.2)) , 我得到 57.489570831681995但是,当我调用 println(MyModule.testmethod1(2.3, 3.2)) ,我得到
ERROR: LoadError: MethodError: no method matching testmethod1(::Float64, ::Float64)
但是当我输入检查这些变量时,比如说, println(typeof(2.3)) , 我得到 Float64 !为什么当我将 Cfloat 指定为数据类型时,Julia 无法匹配我提供给函数的输入?

最佳答案

CfloatFloat32 2.3Float64 .请注意,您可能不应该使用 Cfloat (或 C +type 的其他类型)。这些是 C 互操作的别名。

关于julia - 为什么向我的 Julia 函数添​​加类型会导致 MethodError?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66181281/

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