Vin*_*nod 5 struct global local julia
为什么 Julia 的函数内部不能定义可变结构体?
function test()
mutable struct ABC
x
y
z
a
end
end
Run Code Online (Sandbox Code Playgroud)
抛出错误:
ERROR: LoadError: syntax: "struct" expression not at top level
Run Code Online (Sandbox Code Playgroud)
但是,如果该结构是全局的,位于函数外部并在函数内部访问,则代码可以正常工作。
正如错误所示,结构类型必须在顶层定义(即在“模块范围”中),并且您不能像示例中那样定义函数局部结构。
如果您确实不想在模块中定义结构类型,那么您可以使用 a NamedTuple,它有时可以代替“匿名结构类型”。例子:
function test()
nt = (x = 1, y = 2, z = 3, a = "hello")
# ...
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
623 次 |
| 最近记录: |