Pascal中的字符串数字变量名

Pascal中的字符串数字变量名,pascal,freepascal,Pascal,Freepascal,我想创建一个从I:=1到n的循环,它从过程中获取一个随机数,并将其值赋给名为x1、x2、x3、x4…xn的变量 所以它可能看起来像这样: for i:=1 to 100 do begin GenerateRandomNumber(x); // this procedure gives the updated value of x xi := x; end 我想通过创建一个字符串数组[1..n]来解决这个问题,然后将这个随机数分配给数组的第I个元素。但老实说,我不喜欢

我想创建一个从I:=1到n的循环,它从过程中获取一个随机数,并将其值赋给名为x1、x2、x3、x4…xn的变量

所以它可能看起来像这样:

  for i:=1 to 100 do begin
     GenerateRandomNumber(x); // this procedure gives the updated value of x
     xi := x;
  end

我想通过创建一个字符串数组[1..n]来解决这个问题,然后将这个随机数分配给数组的第I个元素。但老实说,我不喜欢这个解决方案。有没有更快的办法?我在考虑将一个字符串与一个数字连接起来,或者将字符串的x转换为一个数字,然后以某种方式将其与I的连续值合并。你觉得怎么样?

是什么让你觉得这样更快?你凭什么认为这是可能的?还不太清楚。最昂贵的是从数字到字符串表示的转换。如果性能是一个问题,那么有两种可能性:如果您确定字符串表示都将被使用,而不是缓存它们,那么只需在需要时懒洋洋地进行转换。关于存储,没有太多的方法可以做到这一点:数组、列表或关联数组。在您的情况下,建议使用阵列。修改内容时使用列表,两个数据不相关时使用关联数组。这里的情况并非如此,因为您有一个索引、一个数字和它的表示形式。一个变量的RTTI查找可能比构造字符串更昂贵,因为它可能需要几个字符串比较。这并不重要,FPC中未发布字段的RTTI仅在单独的分支中使用alpha。无论如何,使用数组或类,这是错误的思维方式,在编译语言中,变量、函数和类型的名称在编译后被认为丢失了。RTTI的例外情况是成本高、体积大且相对较新。