我想知道如何在nim中使用“概念”(0.13)。我有以下代码:
type
T = concept t
t.a is string
T0 = ref object
a: string
T1 = ref object
a: string
q: string
proc echoT(t: T) : void =
echo "hello " & t.a
echoT(T0(a: "T0"))
echoT(T1(a: "T1", q: "q"))
然而,编译器在第一次调用echoT时抱怨:
t.nim(21, 6) Error: type mismatch: got (T0)
这不应该与将echoT
声明替换为:
proc echoT[T](t: T): void = echo "hello " & t.a
(编译和运行),但概念版本中的约束除外
t.a is string
是否已执行?
如何让编译器识别概念的使用?
答案 0 :(得分:1)
你的例子编译并且对我来说很好(Nim 0.13.0)。您是否可能在源文件中输入错字?