几天前,我发现了Nim语言,并开始使用面向初学者的专用指南https://narimiran.github.io/nim-basics来学习它。我想解决本教程中的一项练习,其中我必须构建一个空数组,该数组可以包含10个整数,然后使用循环将其填充为数字。但是,当我尝试编译代码时,出现错误:
$ nim c array.nim
Hint: used config file '/etc/nim.cfg' [Conf]
Hint: system [Processing]
Hint: array [Processing]
array.nim(4, 1) Error: '=' expected
此刻我的代码如下:
const
a: array[10,int]
var b = 0
var c = 10
for i in a:
a[b] = c*(b+1)
inc b
echo a
似乎问题出在第4行的开头,因为编译器期望“ =”,因为它期望声明数组的内容。但是,根据我使用的教程,可以像我一样声明空数组,并在以后填充它们。我该怎么做才能正确地写出这个?
答案 0 :(得分:3)
您必须使用var
而不是const
关键字,
如const doc中所述:
使用const关键字声明的不可变赋值必须在编译时(在程序运行之前)知道。
由于要初始化数组,因此在程序运行之前不知道这些值。
以下代码应该起作用:
var
a: array[10,int]
var b = 0
var c = 10
for i in a:
a[b] = c*(b+1)
inc b
echo a