typeof operator
Note: typeof(x) can for historical reasons also be written as type(x) but type(x) is discouraged.
One can obtain the type of a given expression by constructing a typeof value from it (in many other languages this is known as the typeof operator):
var x = 0
var y: typeof(x) # y has type int
If typeof is used to determine the result type of a proc/iterator/converter call c(X) (where X stands for a possibly empty list of arguments), the interpretation, where c is an iterator, is preferred over the other interpretations, but this behavior can be changed by passing typeOfProc as the second argument to typeof:
iterator split(s: string): string = discard
proc split(s: string): seq[string] = discard
# since an iterator is the preferred interpretation, this has the type `string`:
assert typeof("a b c".split) is string
assert typeof("a b c".split, typeOfProc) is seq[string]
当前内容版权归 nim-lang.org 或其关联方所有,如需对内容或内容相关联开源项目进行关注与资助,请访问 nim-lang.org .