как преобразовать список в строку в tcl - PullRequest
7 голосов
/ 14 июня 2010

Как мне преобразовать список в строку в Tcl?

Ответы [ 6 ]

17 голосов
/ 14 июня 2010

Скорее всего, вы хотите присоединиться , однако в зависимости от того, что вы пытаетесь сделать, это может быть необязательно.

все, что в TCL, может быть обработано как строка в любое время , следовательно, вы можете просто использовать свой список как строку без явного преобразования

5 голосов
/ 14 июня 2010

Если вам просто нужно содержимое, вы можете поместить $ listvar, и оно запишет содержимое в виде строки.

Вы можете сгладить список на один уровень или вставить символ-разделитель, используя соединение, как ответил jk выше.

Пример:

% set a { 1 2 3 4 { 5 6 { 7 8 9 } } 10 }
 1 2 3 4 { 5 6 { 7 8 9 } } 10 
% puts $a
 1 2 3 4 { 5 6 { 7 8 9 } } 10 
% join $a ","
1,2,3,4, 5 6 { 7 8 9 } ,10
% join $a
1 2 3 4  5 6 { 7 8 9 }  10
1 голос
/ 09 марта 2018

Чтобы свести список с помощью классов:

set list { 1 2 3 4 { 5 6 { 7 8 9 } } 10 }

package require struct::list
struct::list flatten -full $list
1 голос
/ 18 марта 2011
set list {a b c d e f}
for {set i 0} {$i<[llength $list]} {incr i} {
    append string [lindex $list $i]
}
puts $string
0 голосов
/ 07 ноября 2013
set a { 1 2 3 4 { 5 6 { 7 8 9 } } 10 }
set rstr [regexp -all -inline {\S+} $a]
puts $rstr
0 голосов
/ 14 июня 2010

Используйте команду списка.

http://wiki.tcl.tk/440

В качестве альтернативы см. «Split»: http://wiki.tcl.tk/1499

split "comp.unix.misc"

возвращает «comp unix misc»

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...