Nim Compiler Version 0.13.0 (2016-01-19) [Windows: i386]
Nim хранится ссылка процедура в кортеже
Как бы я хранить ссылку на процедуру в кортеже:
Job = tuple[every:int, timescale:string, timestr:string, jobfunc:proc]
proc run(job: Job, jobfunc: proc): Job =
result = job
result.jobfunc = addr jobfunc
В перспективе Proc jobfunc: Учеб получает принято. В кортеже я получаю:
Error: 'proc' is not a concrete type.
Так что же такое тип proc?
[править]
Моя конечная цель состоит в том, чтобы передать функции с произвольными параметрами для run
.
Atm Мне удалось обойти это, используя seq[string]
, но, возможно, он знает более общий способ.
type
Job = tuple[every:int, timescale:string, timestr:string, jobfunc: proc(args:seq[string]) {.gcsafe, locks: 0.}]
proc run(job: Job, jobfunc: proc,args:seq[string]= @[""]): Job =
# ...
discard
proc myfunc(args:seq[string]) =
echo "hello from myfunc ", args
discard
schedule every(10).seconds.run(myfunc,args= @["foo","uggar"])
эй пропи смотрите мою редактировать. – enthus1ast