模板参数的查找规则
模板中的参数 p 总是会被替换,即使是像 x.p 这样的表达式。因此,模板参数可当作字段名称使用,而且一个全局符号会被同名参数所覆盖,即便使用了完全限定也会覆盖:
# 模块 'm'
type
Lev = enum
levA, levB
var abclev = levB
template tstLev(abclev: Lev) =
echo abclev, " ", m.abclev
tstLev(levA)
# 输出: 'levA levA'
但是全局符号可以通过 bind 语句适时捕获:
# 模块 'm'
type
Lev = enum
levA, levB
var abclev = levB
template tstLev(abclev: Lev) =
bind m.abclev
echo abclev, " ", m.abclev
tstLev(levA)
# 输出: 'levA levB'
当前内容版权归 vectorworkshopbaoerjie 或其关联方所有,如需对内容或内容相关联开源项目进行关注与资助,请访问 vectorworkshopbaoerjie .