Я хотел бы преобразовать string
в seq[char]
, поэтому я могу использовать несколько проков в sequtils, но у меня проблема с шаблоном toSeq
.toSeq (some_string) Тип Несоответствие
Например:
proc someproc(a, b: string): seq[tuple[a, b: char]] =
let
s1 = toSeq(a)
s2 = toSeq(b)
result = zip(s1, s2)
дает ошибку компиляции:
lib/pure/collections/sequtils.nim(329, 20) Error: type mismatch: got (seq[string], char)
but expected one of:
system.add(x: var string, y: char)
system.add(x: var string, y: string)
system.add(x: var seq[T], y: T)
system.add(x: var string, y: cstring)
system.add(x: var seq[T], y: openarray[T])
Глядя в этот шаблон: https://github.com/Araq/Nim/blob/master/lib/pure/collections/sequtils.nim#L292
Я вижу, что тип последовательности определяется iter
, который в этом случае равен string
вместо char
. Является ли это ошибкой в шаблоне, или я неправильно использую этот шаблон?
Я использую довольно недавнего 10.3 билда Nim
Основываясь на использовании цикла 'for' в руководстве nim, кажется, что в этой ситуации ожидается неявный вызов' items'. http://nim-lang.org/manual.html#implict-items-pairs-invocations –