我在Nim中看到了这个例子,它需要明确的int和bool类型规范,尽管有足够的信息来推断两者(就像TypeScript那样)。
如果删除了这些类型,它就不会编译,Nim支持类型推断吗?
import sequtils
let list = @[1, 2, 4]
echo list.filter do (x: int) -> bool: x > 2发布于 2020-02-25 07:21:23
您需要的是糖模块中的=>宏。
echo list.filter(x => x > 2)来自文件:
用于无菌程序的语法糖。
macro `=>`(p, b: untyped): untypedproc passTwoAndTwo(f: (int, int) -> int): int =
f(2, 2)
passTwoAndTwo((x, y) => x + y) # 4用于过程类型的语法糖。
macro `->`(p, b: untyped): untypedproc pass2(f: (float, float) -> float): float =
f(2, 2)
# is the same as:
proc pass2(f: proc (x, y: float): float): float =
f(2, 2)发布于 2020-01-09 03:37:28
https://stackoverflow.com/questions/59656646
复制相似问题