小编Doc*_*ave的帖子

(朱莉娅1.x)获取#undef变量的类型

我正在寻找中的字段类型,struct以便相应地设置字段值。某些数据类型初始化上实例化的值(例如Int64Float64),而其它类型的初始化到#undef(例如StringArray)。虽然typeof(getfield())适用于前一种类型,但UndefRefError适用于后者:

julia> mutable struct MyStruct
           a::Int64
           b::String
           MyStruct() = new()
       end

julia> foo = MyStruct()
MyStruct(0, #undef)

julia> typeof(getfield(foo, :a))
Int64

julia> typeof(getfield(foo, :b))
ERROR: UndefRefError: access to undefined reference
Stacktrace:
 [1] top-level scope at none:0
Run Code Online (Sandbox Code Playgroud)

有没有办法获取未初始化变量的类型,或者是否#undef表明类型明显不同?另外,是否可以使用内部构造函数初始化默认值?例如

julia> mutable struct MyStruct
           a::Int64
           b::String
           MyStruct() = new(b = "")
       end
Run Code Online (Sandbox Code Playgroud)

julia

5
推荐指数
1
解决办法
59
查看次数

标签 统计

julia ×1