как преобразовать список в строку в tcl

#tcl

#tcl

Вопрос:

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

Ответ №1:

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

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

Ответ №2:

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

Вы можете выровнять список на один уровень или вставить символ-разделитель с помощью join, как 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. Если вам также нужно сгладить многоуровневые списки, взгляните на пакет Tcllib struct::list и подкоманду flatten. tcllib.sourceforge.net/doc/struct_list.html

Ответ №3:

 set list {a b c d e f}
for {set i 0} {$i<[llength $list]} {incr i} {
    append string [lindex $list $i]
}
puts $string
  

Ответ №4:

Сгладить список с помощью классов:

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

package require struct::list
struct::list flatten -full $list
  

Ответ №5:

 set a { 1 2 3 4 { 5 6 { 7 8 9 } } 10 }
set rstr [regexp -all -inline {S } $a]
puts $rstr
  

Ответ №6:

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

http://wiki.tcl.tk/440

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

 split "comp.unix.misc"
  

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

Комментарии:

1. Вы предоставляете способы создания списка из строки. Напрашивается обратный вопрос — как перейти из списка в строку.