为什么添加类型到我的Julia函数会导致MethodError?



我刚从Python迁移到Julia,但是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)

但是当我输入check这些变量时,比如println(typeof(2.3)),我得到的是Float64!为什么朱莉娅无法匹配输入我给函数当我指定Cfloat作为数据类型?

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

相关内容

  • 没有找到相关文章

最新更新