• 命令调用语法

    命令调用语法

    如果调用在语法上是一个语句,则可以在没有 () 的情况下调用例程。 这种限制意味着 echo f 1, f 2 被解析为 echo(f(1), f(2)) 而不是 echo(f(1, f(2)))

    在这种情况下,方法调用语法可用于提供一个或多个参数:

    1. proc optarg(x: int, y: int = 0): int = x + y
    2. proc singlearg(x: int): int = 20*x
    3.  
    4. echo optarg 1, " ", singlearg 2 # 打印 "1 40"
    5.  
    6. let fail = optarg 1, optarg 8 # 错误。命令调用的参数太多
    7. let x = optarg(1, optarg 8) # 传统过程调用2个参数
    8. let y = 1.optarg optarg 8 # 与上面相同,没有括号
    9. assert x == y

    命令调用语法也不能将复杂表达式作为参数。 例如: (匿名过程), if, casetry 。 没有参数的函数调用仍需要()来区分调用和函数本身作为第一类值。