小编Jen*_*ård的帖子

卷曲支架构造函数?

在阅读Crystal文档时,我遇到了这一行:

 deq = Deque{2, 3}
Run Code Online (Sandbox Code Playgroud)

所以我认为这会调用Deque.new(array : Array(T))构造函数.但是,我没有找到任何关于此语法的文档.(编辑:文档可以在这里找到)

为了测试这种调用构造函数的方式,我编写了以下测试

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
Run Code Online (Sandbox Code Playgroud)

但是,编译它会打印出这个错误:

Error in line 10: wrong number of arguments for 'Foo(Int32).new' (given 0, expected 1)
Overloads are:
 - Foo(T).new(bar : Array(T))
Run Code Online (Sandbox Code Playgroud)

我真的根本不懂. Foo(Int32){1}引发同样的错误.

问题是,这个Klass{1, 2, 3}语法是什么?你怎么用它?

crystal-lang

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

标签 统计

crystal-lang ×1