2015-08-19 17 views
9

mi trovo in una situazione in cui ho una seq[char], in questo modo:Conversione di un seg [char] per stringa

import sequtils 
var s: seq[char] = toSeq("abc".items) 

Qual è il modo migliore per convertire s in una stringa (vale a dire "abc")? Stringendo con $ sembra dare "@[a, b, c]", che non è quello che voglio.

risposta

9

Il modo più efficiente è scrivere una procedura personalizzata.

import sequtils 
var s = toSeq("abc".items) 

proc toString(str: seq[char]): string = 
    result = newStringOfCap(len(str)) 
    for ch in str: 
    add(result, ch) 

echo toString(s) 
5
import sequtils, strutils 
var s: seq[char] = toSeq("abc".items) 
echo(s.mapIt(string, $it).join) 

registrazione è solo per seq[string], quindi dovrete per mappare in stringhe prima.

+0

'mapIt' è ora abbandonata in favore di' applyIt': https://github.com/nim-lang/Nim/pull/3372/files –