Rexx 编程/Rexx 指南/数据类型
外观
原则上,Rexx 只有一种数据类型:字符串。字符串代表存储在计算机内存中的字母、数字、空格、标点符号和其他类型的文本。在实践中,Rexx 识别几种不同的字符串形式,并可以在不同的方式使用它们。因此,我们可以说在整个字符串类型中存在不同的数据类型。
字符串是文本字符的序列。它们可以存储在变量中,在程序中生成,或者使用单引号或双引号直接写入代码中。未初始化的变量被解释为其自身名称的大写版本。
say hello /* unitialized variable - says HELLO */ say 'WORLD' /* single quote string - says WORLD */ say "123" /* double quote string - says 123 */ hello = '---' /* initialized variable - now contains 3 dashes */ say hello /* outputs the 3 dashes */ hello = "" /* the empty string - yes, that's a thing */
数字是一种特殊的字符串。它们是只包含人们用来表示数字的符号的字符串,例如数字、负号或小数点。即使您不使用引号,Rexx 也能识别数字字符串。
/* We can store number strings in variables do math. */ ten = "10" two = '2' say ten + two /* We can write numbers without quotation marks. */ pi = 3.141592654 neg1 = -1 /* We can even use E for scientific notation. */ TwoMillion = 2.0e6
您可以使用 DATATYPE 函数来测试一个值是否仅仅是一个字符字符串,或者专门是一个数字字符串。它将返回 CHAR 或 NUM,取决于具体情况。
say DataType("Hello, world!") /* CHAR */ say DataType('1.14193E2') /* NUM */ say DataType("35 meters") /* CHAR */ say DataType(-42) /* NUM */
您也可以使用一个长度为一个字母的第二个字符串来调用该函数,以检查更具体的字符串类型。
- A = 字母数字:只包含字母和数字
- B = 二进制:只包含零和一
- L = 仅小写字母
- M = 仅字母(混合大小写)
- N = 数字
- U = 仅大写字母
- W = 整数
- X = 十六进制:数字和字母 A-F
如果第一个字符串实际上与该类型匹配,则 DATATYPE 函数将返回 1;如果它不匹配,则返回 0。
bits = 101011 say DataType(bits, 'A') /* 1 */ say DataType(bits, 'B') /* 1 */ say DataType(bits, 'L') /* 0 */ say DataType(bits, 'M') /* 0 */ say DataType(bits, 'N') /* 1 */ say DataType(bits, 'U') /* 0 */ say DataType(bits, 'W') /* 1 */ say DataType(bits, 'X') /* 1 */