glw*_*art 4 dictionary composite-types julia
我想创建一个包含字典作为其命名字段之一的复合类型.但明显的语法不起作用.我确信有一些基本的东西我不明白.这是一个例子:
type myType
x::Dict()
end
Run Code Online (Sandbox Code Playgroud)
朱莉娅说:type: myType: in type definition, expected Type{T<:Top}, got Dict{Any,Any}我猜,这意味着字典不是Any任何命名字段必须的字典.但我不知道如何告诉它我的意思.
我需要一个字典的命名字段.内部构造函数将初始化字典.
类型和实例之间的语法有细微差别. Dict()实例化一个字典,而Dict它本身就是一个类型.定义复合类型时,字段定义必须是形式symbol::Type.
该错误消息有点令人困惑.有效的说法是这样的:
在类型定义中,期望具有类型的东西
Type{T<:Top},得到类型的实例Dict{Any,Any}.换句话说,它有望像
Dict,这是一个Type{Dict},而是得到了Dict(),这是一个Dict{Any,Any}.
你想要的语法是x::Dict.
Dict()创建一个字典,特别是一个字典Dict{Any,Any}(即键和值可以有任何类型<:Any).你希望字段是类型 Dict,即
type myType
x::Dict
end
Run Code Online (Sandbox Code Playgroud)
如果你知道键和值类型,你甚至可以写,例如
type myType
x::Dict{Int,Float64}
end
Run Code Online (Sandbox Code Playgroud)