NextHook <> 0
是一个值类型为 "Boolean" 的表达式
因为 Boolean 表达式一般都用于 if 语句,容易给人以错觉,仿佛只能用于 if 语句:
if ( NextHook <> 0 ) then ...
实际上,Boolean 类型的值和 Integer, Double, Record 之类一样,可以赋值、运算:
var i, j;
...
i = 1;
j = 1;
Result := i + j;
可以,为什么
Result := i <> 1;
Result := (i = 1) and (j = 3);
Result := (i > 0) xor (j < 0);
就不可以?纠正错误的习惯看法,就豁然开朗了