命令调用语法
如果调用在语法上是一个语句,则可以在没有 () 的情况下调用例程。此命令调用语法也适用于表达式。但之后只能有一个参数。这种限制意味着 echo f 1, f 2 被解析为 echo(f(1), f(2)) 而不是 echo(f(1, f(2))) 。 在这种情况下, 方法调用语法可以用来提供更多的参数。
proc optarg(x: int, y: int = 0): int = x + y
proc singlearg(x: int): int = 20*x
echo optarg 1, " ", singlearg 2 # 打印 "1 40"
let fail = optarg 1, optarg 8 # 错误。命令调用的参数太多
let x = optarg(1, optarg 8) # 传统过程调用 2 个参数
let y = 1.optarg optarg 8 # 与上面相同, 没有括号
assert x == y
命令调用的语法也不能有复杂的表达式作为参数。例如:匿名过程、if、case、try。 没有参数的函数调用仍然需要 () 来区分调用和函数本身优先类的值。
当前内容版权归 vectorworkshopbaoerjie 或其关联方所有,如需对内容或内容相关联开源项目进行关注与资助,请访问 vectorworkshopbaoerjie .