Do 标记
作为一种特殊的简洁表示法, do 关键字可以用来将匿名过程传递给过程:
var cities = @["Frankfurt", "Tokyo", "New York", "Kyiv"]
sort(cities) do (x, y: string) -> int:
cmp(x.len, y.len)
# 使用方法加命令语法减少括号:
cities = cities.map do (x: string) -> string:
"City of " & x
do 写在包含常规过程参数的圆括号之后。 由 do 块表示的过程表达式,将作为最后一个参数附加到例程调用。 在使用命令语法的调用中, do 块将绑定到前面紧靠的表达式,而不是命令调用。
带参数列表或编译指示列表的 do 对应于匿名的 proc ,但是不带参数或编译指示中的 do 被视为常规语句列表。 这允许宏接收缩进语句列表作为内联调用的参数,以及 Nim 例程语法的直接镜像。
# 将语句列表传递给内联宏:
macroResults.add quote do:
if not `ex`:
echo `info`, ": Check failed: ", `expString`
# 处理宏中的例程定义:
rpc(router, "add") do (a, b: int) -> int:
result = a + b
当前内容版权归 vectorworkshopbaoerjie 或其关联方所有,如需对内容或内容相关联开源项目进行关注与资助,请访问 vectorworkshopbaoerjie .