【发布时间】:2014-08-04 02:32:57
【问题描述】:
编辑:
这只是一个已修复的错误。 我更新到 Julia 版本 0.3.0-rc1+32 并且代码运行没有错误。
https://github.com/JuliaLang/julia/issues/7830#event-148849792
Julia 从 Int 到 Float 的自动类型转换在函数内部不起作用。有没有简单的方法让它工作?
用一些代码我的问题会更清楚:
type A
a::FloatingPoint
end
instance = A(1)
#println("$instance") -> A(1.0)
#FINE
instance.a = 2
#println("$instance") -> A(2.0)
#THROWS ERROR
function fn()
instance.a = 3
end
fn()
错误只是转换错误。
ERROR: type: setfield!: expected FloatingPoint, got Int64
in fn at /home/john/Desktop/test.jl:18
in include at ./boot.jl:245
in include_from_node1 at loading.jl:128
in process_options at ./client.jl:285
in _start at ./client.jl:354
while loading /home/john/Desktop/test.jl, in expression starting on line 20
我知道我可以在数字末尾添加一个小数点(即“3.”),以便在赋值之前将其转换为浮点数。但是,如果自动转换仅在函数内部工作,我正在处理的项目会容易得多。
我做错了什么?
【问题讨论】:
-
这种问题最好在 julia-users 列表中提出。如果有错误,那么 github 问题也是合适的。
-
谢谢,我会把它移到那里。
-
有趣。如果您在函数中添加“全局实例”,它似乎可以工作
-
这个问题可能值得标记为已回答,即使它是一个错误修复...
标签: type-conversion julia