0
nim(0.13)で「コンセプト」を使用する方法が不思議です。Nimで `concept`を使うにはどうすればいいですか?
t.nim(21, 6) Error: type mismatch: got (T0)
べきではありません。この作品でechoT
宣言を交換すると同じ:
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の最初の呼び出し時に文句を言う:私は、次のコードを持っています
proc echoT[T](t: T): void = echo "hello " & t.a
(コンパイルして実行します)ただし、コンセプトバージョンでは、制約 t.a is string
が強制されていますか?
コンセプトの使用をコンパイラに認識させるにはどうすればよいですか?
Andrew ... hmm ... ok:オリジナルは合っています...しかし、新しい場所に置いたときに動作します!元の場所に私のセットアップについての何かがうんざりです。 (nimcache?)。確認してくれてありがとう。 :) – shaunc