为什么从变量创建大小的StaticArray会引发错误?

时间:2018-01-22 12:22:19

标签: arrays crystal-lang

error when creating StaticArray with size from variable

我收到此错误(见图片),但我不知道如何解决此问题?

代码:

t = 3
seps = StaticArray(Int32, t).new{
      2
}
seps.each{|i| p i}

错误:

Syntax error in eval:2: expecting token ')', not 't'

当我像这样初始化StaticArray时,它可以工作:

seps = StaticArray(Int32, 3).new{
      2
}
seps.each{|i| p i}

但我需要像第一个代码示例一样初始化数组!

1 个答案:

答案 0 :(得分:4)

StaticArray具有固定大小,无法在运行时修改。语法甚至不允许将变量用作泛型参数,因为它没有意义。

如果在运行时需要可变大小,则应使用Array。