我现在正在学习该语言,因此在语法方面我确实并不坚强,无法在线找到答案。
我可以轻松地将数组拆分为两个数组,但是当我尝试定义如下内容时:
Counts: Array['a'..'z','0'..'9'] of Integer;
我收到无法解决的错误:
Incompatible types: got "ShortInt" expected "Array[48..57] Of SmallInt
是否可以定义这样的数组?谢谢。
声明
Counts: Array['a'..'z','0'..'9'] of Integer;
表示Array[97..122] of Array[48..57] of Integer
。它是一个二维数组。
用作:
Counts['a','0'] := 42;
如果您打算创建一个带有索引间隙的一维数组,则不可能。
从编译器中看到的错误是因为访问数组的方式就像是一维数组,可能是这样的:
program Hello;
VAR
Counts: Array['a'..'z','0'..'9'] of Integer;
begin
Counts['a'] := 42;//Error: Incompatible types: got "ShortInt" expected "Array[48..57] Of SmallInt"
end.