2011-08-01 1 views

답변

3

귀하의 질문에 실제로 의미가 없습니다. TCL에서 목록은 내부적으로 문자열로 저장됩니다. { "1", "2", "3"}으로 표시하고 싶다고 말하면 목록의 외부 표시를 참조한다고 가정 할 수 있습니다. 즉 다음과 같이 명령을 결합하여 수행 할 수 있습니다 :

% set x [list 1 2 3] 
% set z "\{\"[join $x "\","]\"\}" 

{ "1", 2 ", 3"}

+1

목록은 더 이상 내부적으로 문자열로 저장되지 않습니다. Tcl_ListObject [link]를 참조하십시오. http://tmml.sourceforge.net/doc/tcl/ListObj.html). 그러나 그것은 사소한 세부 사항이다. – schlenk

+0

그것은''문자의 가능성을 다루는 데 필요한 모든 인용을 처리하지는 않지만''foreach '를 수행 할 때 (또는 도우미 절차를 수행 할 때)입니다. –

4

당신의 캐릭터 라인 표현을 혼동하고 메모리 내 표현을 포함한리스트 메모리에있는 목록은 바로 그것입니다. 그렇지 않은 경우에는 분리 된 요소의 순서가 지정된 목록입니다. "pretty print"(터미널에 출력하기 위해) 일반적으로 문자열을 만들어서 출력해야하는 경우. 문자열을 만드는 가장 간단한 방법은으로 이미 제안 된대로 [join]을 사용하는 것입니다. 이 목록 요소 공간 문자열로 저장되어있는 "것을 의미하지는 않는다 : 다른 말로

는 코드

set L [list 1 2 3] 
puts $L 

출력"1 2 3 "사실 속지 않는다 - 분리 ". 암시 적으로으로 요청할 때 Tcl에서 사용하는 목록의 기본 문자열 표현입니다. 문자열 값을 필요로하는 [puts]에 해당 목록을 전달하여 목록에서 문자열을 만듭니다. (NB 엄밀히 말하면 "문자열 값을 기대합니다"는 Tcl 내부 구조에 대해서는 맞지 않지만 지금은 무시해 보겠습니다.)

관련 문제