结构字段的默认初始化状态?

Pic*_*ent 4 language-lawyer julia

在Julia v0.6下,简单的代码:

julia> struct A
             x::Int = 1
       end   
Run Code Online (Sandbox Code Playgroud)

生成此错误:

ERROR: syntax: "x::Int=1" inside type definition is reserved
Run Code Online (Sandbox Code Playgroud)

这是一个相当难以捉摸的信息:保留什么?

- >我是否必须明白,在未来的Julia版本中将允许这种定义?

Chr*_*kas 6

这可以通过Parameters.jl获得.

julia> using Parameters

julia> @with_kw struct A
           a::Int = 6
           b::Float64 = -1.1
           c::UInt8
       end

julia> A(c=4)
A
  a: 6
  b: -1.1
  c: 4
Run Code Online (Sandbox Code Playgroud)

  • 在Julia的后期版本中,这是计划好的.它只是[移动到1.x里程碑](https://github.com/JuliaLang/julia/issues/10146)因为现在任何想要它的人都可以使用Parameters.jl,所以这不是阻止朱莉娅的一个重要原因1.0. (3认同)
  • 它不会开辟更多的优化.Julia 1.0的关键字参数和文字内联+过程间优化将完全优化这一点. (2认同)