Pascal中能否使用默认单行语法初始化二维数组?
二维数组单行初始化的可行方案(Pascal默认语法)
仅用Pascal默认语法是可以实现二维数组的单行初始化的,核心是根据数组的类型(静态固定大小/动态可变大小)选择匹配的字面量语法,避免类型不匹配问题:
1. 静态固定大小二维数组
如果你声明的是静态二维数组(比如array[1..2, 1..2] of Integer),不能直接使用嵌套方括号[[11,12],[13,14]](这是动态数组的字面量语法),但可以用嵌套圆括号的构造器完成单行赋值:
var arr: array[1..2, 1..2] of Integer; begin arr := ((11, 12), (13, 14)); end;
这里的((11, 12), (13, 14))是标准Pascal中静态二维数组的合法构造字面量,和数组类型完全匹配,不会触发编译错误。
2. 动态可变大小二维数组
如果声明的是动态二维数组(array of array of Integer),你最初尝试的嵌套方括号写法完全合法:
var arr: array of array of Integer; begin arr := [[11, 12], [13, 14]]; end;
这种情况下,方括号嵌套的字面量会被编译器识别为动态数组的数组类型,自动完成类型匹配,无需额外转换。
内容的提问来源于stack exchange,提问作者Chris_Drake_146
相关产品推荐
相关产品推荐

