gpt4 book ai didi

arrays - 可以连接字符串常量数组吗?

转载 作者:行者123 更新时间:2023-12-03 15:52:25 25 4
gpt4 key购买 nike

我已经声明了几个常量数组,并且我想声明更多由这些常量组成的常量,但我无法确定是否有合理的方法来做到这一点。

const
Common_Strings : array [0..1] of string = ('foo','bar');
Extra_Strings : array [0..1] of string = ('some','extra');

我想做的是其中之一:

  Combined_Strings = Common_Strings + Extra_Strings;
Combined_Strings = (Common_Strings, Extra_Strings);

这看起来应该可以工作,但是写起来很难看,维护起来更难看,因为我的实际常量有 10 多个元素:

  Combined_Strings = (Common_Strings[0], Common_Strings[1], Extra_Strings[0], Extra_Strings[1]);

但是在愚蠢的情况下,常量数组的元素不一定是常量:“[DCC Error] MyFile.pas(89): E2026 Constant expression Expected”。显然,如果我尝试分配给它们,我会收到“[DCC Error] MyFile.pas(854): E2064 Left side无法分配给”。

我注意到它也不可能写:

Duplicate_Constant = Common_Strings;

(“期望不断的表达”。真的。)

有没有办法将常量数组组合成更多的常量数组?

最佳答案

类型常量只能用常量表达式来声明。您正在尝试根据类型常量声明类型常量。由于类型常量不是常量表达式,因此您看到的编译器消息是设计使然的。

结论是两个类型常量数组的串联只能在运行时执行。因此连接的结果只能存储到变量而不是常量。

array constants 的文档明确这一点(强调我的):

To declare an array constant, enclose the values of the array's elements, separated by commas, in parentheses at the end of the declaration. These values must be represented by constant expressions.

关于arrays - 可以连接字符串常量数组吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17460378/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com