Я публикую здесь конкретную проблему с использованием библиотеки (мрачной) в Nim, но основные концепции все еще не очень ясны для меня, поэтому я ценю решение с объяснением.
Я хотел бы сделать процедуру, возвращающую node. Приведенный ниже пример не очень полезен, но показывает суть: я хочу return node
, но, по-видимому, не знаю, какой это тип.
import grim
import sequtils
proc get_a_node_with_label(graph: Graph, label: string): Node =
for node in graph.nodes:
if node.label == label:
return node
var g = newGraph("graph")
let n1 = g.addNode("n1", %(Name: "first"))
let n2 = g.addNode("n2", %(Name: "second"))
var aNode = get_a_node_with_label(g, "n2")
я получаю Error: undeclared identifier: 'Node'
, но тип узла в цикле — узел, если я echo node.type
.
Как мне поступить с типами в этом случае? Какой вывод я должен объявить в процедуре?
Спасибо, Андреа.
PS: Прошу прощения, если вопрос задан неправильно, и я буду рад улучшить его под вашим руководством.