• typeof操作符

    typeof操作符

    注意: typeof(x) 由于历史原因也可以写成 type(x) ,但不鼓励。

    您可以通过从中构造一个 typeof 值来获取给定表达式的类型(在许多其他语言中,这被称为 typeof 操作符):

    1. var x = 0
    2. var y: typeof(x) # y has type int

    如果 typeof 用于确定proc/iterator/converter c(X) 调用的结果类型(其中X代表可能为空的参数列表),首选将 c 解释为迭代器,这种可以通过将 typeOfProc 作为第二个参数传递给 typeof 来改变:

    1. iterator split(s: string): string = discard
    2. proc split(s: string): seq[string] = discard
    3.  
    4. # 因为迭代器是首选解释,`y` 的类型为 ``string`` :
    5. assert typeof("a b c".split) is string
    6.  
    7. assert typeof("a b c".split, typeOfProc) is seq[string]