의 글로벌 배열의 존재를 확인하는 명령을 만들어 보자 : uplevel #0
부분은 스크립트가 전역 수준에서 실행됨을 의미합니다.
이제 우리는 배열을 만들고, 그것을 확인 : 그것은 존재
% array set a\ b {key1 val1}
% checkArr "a b"
1
합니다. 우리는 또한 동일한 코드를 사용하여 배열의 구성원의 존재를 확인할 수 있습니다
% checkArr "a b(key1)"
1
사실, 문자열 어떤 종류의 checkArr
에 전달 될 수 있으며 변수가있는 경우 (배열을 알려하거나 것입니다) 그 이름으로. 당신이 배열 구성원에 대한 전문 검사를 원하는 경우, 다음과 같이 쓸 수있다 :
proc checkArrayMember {arrName memberName} {
uplevel #0 [list info exists $arrName\($memberName)]
}
% checkArrayMember "a b" key1
1
왼쪽 괄호 앞의 백 슬래시는 문자열의 단지 일부의 통 사적 의미를 없애하고 있습니다 : 기본적으로 스크립트를 info exists {a b(key1)}
이됩니다.
문서 : 사용자가 제공 array, info, list, proc, uplevel, Summary of Tcl language syntax
샘플 당신이 주장하는 문제 이외의 문제를 가지고있다. 재현 할 수있는 코드 스 니펫을 제공하십시오. – Jerry
@Jerry에게 문의 해 주셔서 감사합니다. 배열 이름이 변수이고 공백이 있으면 정보가 존재하면 도움이 필요합니다. 친절하게 도와주세요 – Stuti
복제 : https://stackoverflow.com/questions/44605149/tcl-how-to-name-a-variable-that-includes-another-variable?rq=1 et. al. –