Ho uno strategie espresse in farmaci generici in NIM:qual è la definizione del tipo di nim per la procedura generica?
proc fooStrategy[T](t: T, ...)
proc barStrategy[T](t: T, ...)
vorrei creare una tabella di ricerca per le strategie per nome ... così ho provato:
type
Strategy*[T] = proc[T](t: T, ...)
let strategies* = toTable[string, Strategy[T]]([
("foo", fooStrategy), ("bar", barStrategy)])
Questo non lo fa lavoro: la dichiarazione del tipo fallisce. Se riuscissi a cavarmela potrei immaginare che il tavolo delle strategie avrebbe anche dei problemi. c'è un altro modo per fare ciò? "T" dovrebbe essere "qualche tipo di raccolta 1D" - potrebbe essere sequenza, matrice, vettore da blas, ecc. Potrei aggiungere strategie concrete alla tabella per le raccolte comuni, ma ho ancora il problema con il puntatore di funzione, come
type
Strategy* = proc(t: any, ...)
let strategies* = toTable[string, Strategy]([
("foo-seq[int]", fooStrategy[int]), ...])
ha ancora problemi. Eventuali suggerimenti?
'initTable' ->' toTable' right ... corretto in questione come non quello che stavo cercando di ottenere. :)... Grazie! – shaunc
Inoltre, [{.nimcall.}] (Http://nim-lang.org/docs/manual.html#types-procedural-type) fa anche il trucco https://glot.io/snippets/ee8rmk9fs0 – Arrrrrrr