delphi 数组竟然可以这样定义


本文整理自网络,侵删。

 数组竟然可以这样定义
//这是常规思路:
const
arr: array[0..1] of Char = ('A','B');
begin
ShowMessage(arr); {AB}
ShowMessage(IntToStr(Length(arr))); {2}
end;
--------------------------------------------------------------------------------

//没想到可以这样:
const
arr: array[Boolean] of Char = ('A','B');
begin
ShowMessage(arr); {AB}
ShowMessage(IntToStr(Length(arr))); {2}

{访问元素}
ShowMessage(arr[False]); {A}
ShowMessage(arr[True]); {B}

{也可以这样访问}
ShowMessage(arr[Low(arr)]); {A}
ShowMessage(arr[High(arr)]); {B}

{但不能这样访问}
// ShowMessage(arr[0]);
// ShowMessage(arr[1]);

{但可以变通一下}
ShowMessage(arr[Boolean(0)]); {A}
ShowMessage(arr[Boolean(1)]); {B}
end;
--------------------------------------------------------------------------------

//同理, 这样也可以:
const
arr: array[Byte] of Integer = (
1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,
30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,
56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,
82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,
106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,
126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,
146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,
166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,
186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,
206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,
226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,
246,247,248,249,250,251,252,253,254,255,256);
begin
ShowMessage(IntToStr(arr[Low(arr)])); {1}
ShowMessage(IntToStr(arr[High(arr)])); {256}
ShowMessage(IntToStr(Length(arr))); {256}
end;
--------------------------------------------------------------------------------

//给这种用法来一个必要性的实例:
const
BoolStr: array[Boolean] of string = ('False', 'True');
var
b: Boolean;
begin
b := True;
ShowMessage(BoolStr[b]); {True}
b := not b;
ShowMessage(BoolStr[b]); {False}
end;

相关阅读 >>

Delphi 检查父进程

Delphi 取16进制字符的10进制的integer值

Delphi webbroker iis cgi 的配置

Delphi 删除internet临时文件

Delphi indy 组件包里的 idhttp 组件使用 get 方法下载文件限速的方法

Delphi的判断文件和文件夹

Delphi 将对象转换为json字符串或tjsonobject

Delphi synedit1 synmemo1 显示行号

Delphi 世界时间转换

Delphi types of actual and formal var parameters must be identical

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...