尼姆范围超出范围

Art*_*ras 1 arrays nim-lang

所以我是Nim的新手.对不起,如果这听起来很棒.这是我的代码:

proc makeMap(width: int, size: int): seq[int]=
 var theMap = newSeq[int](size)
 var playerPos: int = 249750
 var i: int = 0;
 for i in 1..size:
   if i<width:
     theMap[i] = 2
   elif i == playerPos:
     theMap[i] = 1
   else:
     theMap[i] = 0
 return theMap


var width = 500;
var height = 500;
var nsize: int = width * height
var myMap = makeMap(width, nsize)
echo "Map: ", myMap
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误:

nim.nim(18)              nim
nim.nim(8)               makeMap
system.nim(2833)         sysFatal
Error: unhandled exception: index out of bounds [IndexError]
Run Code Online (Sandbox Code Playgroud)

我该怎么做才能解决错误?对不起,谢谢你.

def*_*ef- 5

i从1 迭代到size(包括),但seq的theMap索引从0到size-1.将第5行更改为for i in 0 .. size-1,或者您也可以使用theMap.high查找允许的最高索引.

  • 另外,我更喜欢在0 .. <size`中输入`for i而不是在0 .. size-1`中输入`for i (2认同)