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}


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

最佳答案

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

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

关于arrays - 为什么从变量创建具有大小的StaticArray会引发错误?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48381519/

10-09 21:05