作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个类型 Milkshake
,其中包含 flavor
field 。我想要另一种类型,Order
,它只包含一个列表 Milkshake
s;因此,我使用了 typealias
.
julia> VERSION
v"0.5.1"
julia> type Milkshake
flavor::String
end
julia> typealias Order Array{Milkshake, 1}
Array{Milkshake,1}
julia> Order([Milkshake("Chocolate"), Milkshake("Vanilla")])
2-element Array{Milkshake,1}:
Milkshake("Chocolate")
Milkshake("Vanilla")
Order
添加一个构造函数,不过,这样我就可以通过简单地使用
flavor
来初始化订单字符串。但是,当我尝试定义执行此操作的构造函数时,该定义奇怪地返回类型
Array{Milkshake, 1}
.
julia> Order(milkshakes::String...) = Order(map(Milkshake, milkshakes))
Array{Milkshake,1}
julia> Order("chocolate", "vanilla")
ERROR: MethodError: Cannot `convert` an object of type Tuple{Milkshake,Milkshake} to an object of type Array{Milkshake,1}
This may have arisen from a call to the constructor Array{Milkshake,1}(...),
since type constructors fall back to convert methods.
in Array{Milkshake,1}(::String, ::String) at ./REPL[3]:1
Order
typealias
?
最佳答案
Order(milkshakes::String...) = Order(map(Milkshake,collect(milkshakes)))
作品。
定义了它后,可以按如下方式构造 Order:
julia> Order("Chocolate","Vanilla")
2-element Array{Milkshake,1}:
Milkshake("Chocolate")
Milkshake("Vanilla")
关于constructor - 如何将构造函数添加到 Julia 中的类型别名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43026062/
我是一名优秀的程序员,十分优秀!