3
我遇到了Nim序列的問題,並從函數返回它們。如何在Nim中處理seq作爲返回值
json_p.nim(42, 33) template/generic instantiation from here
json_p.nim(28, 22) Error: no generic parameters allowed for seq
線28是我定義我key_list
proc get_json_keys(json_data: JsonNode) : seq =
var key_list: seq[string] = @[] # 28
var key: string
for record in json_data:
for key, value in record:
if (not key_list.contains(key)):
key_list.add(key)
return key_list
我只是把它從主。
proc main() : void =
var file = get_url()
var json_data = file.parseFile()
[...]
var key_list = get_json_keys(json_data)
for key in key_list:
echo key
該代碼在主函數內工作良好。
原因是'get_json_keys'的返回類型是'seq'而不是'seq [string]'。問題是'seq'是一個類型類,而不是一個具體的類型。如果用'seq [string]'替換返回類型,則問題應該消失。 –
這是正確的...我是尼姆的新手。完全錯誤的錯誤 – wishi
不是你的錯,錯誤信息是非常誤導。我注意到它是因爲「模板/泛型實例化」部分,它只能在調用模板,具有顯式泛型參數的過程或使用類型類的過程時纔會發生。 –