括号有时用于一些似是而非的场合。比如,考虑表达式 X = Y or X = Z 这里的明显用意是 (X = Y) or (X = Z)
但若没有括号,编译器遵循优先级规则把它读作 (X = (Y or X)) = Z
此时,若Z不是布尔类型,它将导致编译错误。
括号通常使代码更容易读写,即使有时候严格说来它们是多余的。这样,上面第一个例子可写作X + (Y * Z)
这里,括号(对编译器)不是必须的,但对程序的编写者和阅读者来说,它节省了判断运算符优先级的时间。
Function calls(函数调用)
因为函数返回一个值,所以函数调用是表达式。比如,若你定义了一个叫做数参数并返回一个整数,那么函数调用Calc(24, 47)是一个整数表达式。8)也是整数变量。函数调用的例子包括
Sum(A, 63)
Maximum(147, J) Sin(X + Y) Eof(F)
Volume(Radius, Height) GetValue
TSomeObject.SomeMethod(I,J);
关于函数的更多信息,请参考Procedures and functions。Set constructors(集合构造器)
集合构造器表示一个集合类型的值。比如, [5, 6, 7, 8]
它表示一个成员是5、6、7和8的集合。集合构造器 [ 5..8 ]
它也能表示同一个集合。 集合构造器的语法是
[ item1, ..., itemn ]
这里,每个item或者是表示集合基础类型中的一个有序值(表达式)一对这样的值(表达式)。若一个条目(item)是x..y的形式,它是从的有序值的简写。但若x比y大,则x..y不表示任何内容,表示一个集合,它仅有的一个成员是x值。 集合构造器的例子:
Calc若I和J是整数变量,,或者是由两个点(x到y范围间(包括[x..y]是空集。集合构造器 那么I + Calc(J, ..)连接起来的x和y)所有[ ]表示空集,而[x]- 27 -
的函数,它接收两个整
Syntactic elements
[red, green, MyColor]
[1, 5, 10..K mod 12, 23]
['A'..'Z', 'a'..'z', Chr(Digit + 48)]
关于集合的更多信息,请参考Sets。
Indexes(索引)
字符串、数组、数组属性以及指向字符串或数组的指针能被索引。比如,若FileName是一个字符串变量,表达式FileName[3]返回FileName字符串中的第3个字符,而FileName[I + 1]返回被I索引的后一个字符。关于字符串的信息,请参考String types;关于数组和数组属性的信息,参考Arrays和Array properties。 Typecasts(类型转换)
Typecasts: Overview(概述)
有时,把一个表达式当作一种不同的类型是很有用的。实际上,强制类型转换使你临时改变一个表达式的类型。比如,Integer('A')把一个字符A转换为一个整数。
强制类型转换的语法是
typeIdentifier(expression)
若表达式是一个变量,结果被称为variable typecast(变量转换);否则,结果是一个
换)。虽然它们的语法相同,但它们有不同的转换规则。
Value typecasts(值转换)
在值转换中,类型标志符和转换的表达式必须都是有序类型或指针类型。值转换的例子包括
Integer('A')
Char(48)
Boolean(0)
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-23665-17.html
流畅度提高
非主流哥哥