Mam strategie wyrażone jako leków generycznych w NIM:jaka jest definicja typu NU dla ogólnej procedury?
proc fooStrategy[T](t: T, ...)
proc barStrategy[T](t: T, ...)
Chciałbym utworzyć tabelę przeglądową dla strategii wg nazwy ... więc próbowałem:
type
Strategy*[T] = proc[T](t: T, ...)
let strategies* = toTable[string, Strategy[T]]([
("foo", fooStrategy), ("bar", barStrategy)])
To nie robi praca - deklaracja typu nie powiedzie się. Gdybym doszedł do tego, mogłem się domyślić, że tabela strategii również miałaby problemy. Czy jest inny sposób na zrobienie tego? "T" ma być "typem kolekcji 1D" - może to być sekwencja, tablica, wektor z blasów itp. Mogłabym dodać konkretne strategie do tabeli dla wspólnych kolekcji, ale nadal mam problem ze wskaźnikiem funkcji, jako
type
Strategy* = proc(t: any, ...)
let strategies* = toTable[string, Strategy]([
("foo-seq[int]", fooStrategy[int]), ...])
nadal ma problemy. Jakieś sugestie?
'initTable' ->' toTable' right ... poprawiony w pytaniu, ponieważ nie to, co próbowałem dostać. :)... dzięki! – shaunc
Również [{.nimcall.}] (Http://nim-lang.org/docs/manual.html#types-procedural-type) również wykonuje sztuczkę https://glot.io/snippets/ee8rmk9fs0 – Arrrrrrr