【发布时间】:2018-03-14 12:34:49
【问题描述】:
在阅读 Crystal 文档时,我发现了这一行:
deq = Deque{2, 3}
所以我认为这调用了Deque.new(array : Array(T)) 构造函数。但是,我没有找到任何有关此语法的文档。
(编辑:The documentation can be found here)
为了测试这种调用构造函数的方式,我写了如下测试
class Foo(T)
def initialize(@bar : Array(T)); end
def to_s(io : IO)
io << "Foo: "
io << @bar
end
end
puts Foo{1} # Line 10
但是,编译它会打印这个错误:
Error in line 10: wrong number of arguments for 'Foo(Int32).new' (given 0, expected 1)
Overloads are:
- Foo(T).new(bar : Array(T))
我真的完全不明白。
Foo(Int32){1} 引发同样的错误。
问题是,Klass{1, 2, 3} 语法是什么?以及如何使用它?
【问题讨论】:
标签: crystal-lang