bonkora 님이 올려주신 팁입니다.
제목만 봐서는 어떤 내용인지 얼른 이해가 안 되실 것 같습니다. 예를 들어서 a라는 변수에 100이라는 값을 넣고 b라는 이름의 변수에다가는 a라는 변수의 이름을 넣은 후 변수 b를 이용하여 변수 a의 값인 100을 얻고 싶다면 어떻게 하면 될까 하는 것입니다. 이런 것을 써먹을 곳이 있겠냐 싶은데, 가끔은 필요할 때가 있더군요. 이럴 때 필요한 것이 subst 커맨드입니다. 책에는 subst 커맨드에 대해 이렇게 설명하고 있습니다. "어떠한 커맨드도 호출하지 않고, 커맨드와 변수 대입을 하기 위해 사용한다. 대입순환을 한다는 점은 eval과 유사하나 커맨드로써 그 결과를 해석하려 시도하지 않는다."
실례를 들어보겠습니다. 변수 han에다가 "한글"이라는 값을 넣습니다. 변수 var에다가는 변수 이름인 "han"을 넣습니다. 그런 후 변수이름 var를 이용하여 변수 han의 값인 "한글"을 얻는 것입니다. 아래의 예에서 "=>" 다음에 나오는 것은 Tcl 인터프리터가 준 반응입니다.
set han "한글"
=> 한글
set var han
=> han
puts $var
=> han
puts [subst $var]
=> han
puts $[subst $var]
=> $han
puts [subst $[subst $var]]
=> 한글
또 다른 예입니다. 변수의 이름에 일련번호를 붙여서 루프를 이용하여 변수가 갖고 있는 값을 출력하는 것입니다.
set lang1 "한국어"
=> 한국어
set lang2 "영어"
=> 영어
set lang3 "일본어"
=> 일본어
set lang4 "중국어"
=> 중국어
for {set i 1} {$i <= 4} {incr i} {puts [subst $[subst lang$i]]}
=> 한국어
=> 영어
=> 일본어
=> 중국어
'Tcl & Tk > 팁 (Tip)' 카테고리의 다른 글
Tcl/Tk 소스를 숨기고 독립적인 실행파일을 만드는 가장 간단한 방법 (0) | 2025.03.14 |
---|---|
sort 비교 함수 정의하기 (0) | 2025.03.14 |
백그라운드 실행 패키지 'jobexec' (0) | 2025.03.14 |
MyTcl Syntax 파일 생성하기 (0) | 2025.03.14 |
MyTcl 사용 라이브러리 목록 얻기 (1) | 2025.03.14 |