namespace ensemble은 Tcl 8.5에서 추가된 namespace의 서브커맨드입니다. 네임스페이스 내부의 proc 로 정의한 함수를 서브커맨드명으로 사용 할 수 있게 해줍니다. 서브커맨드로 등록시 -subcommands 옵션에 리스트로 지정합니다. 아래 간단한 예시를 소개합니다.
namespace eval test {
namespace ensemble create -subcommands [list abcd efgh]
proc abcd {} {
puts "-- subcommand 'abcd'! --"
}
proc efgh {} {
puts "-- subcommand 'efgh'! --"
}
proc ijkl {} {
puts "-- command 'ijkl' in namespace test --"
}
}
이 예시를 test.tcl이라는 파일명으로 저장하고, tclsh를 실행한 후 source 명령어로 저장한 파일을 불러와 커맨드를 실행해봅니다.
$ tclsh
% source test.tcl
% test
wrong # args: should be "test subcommand ?argument ...?"
% test abcd
-- subcommand 'abcd'! --
% test efgh
-- subcommand 'efgh'! --
% test ijkl
unknown or ambiguous subcommand "ijkl": must be abcd, or efgh
% test::ijkl
-- command 'ijkl' in namespace test --
'Tcl & Tk > 팁 (Tip)' 카테고리의 다른 글
Tcl 8.5의 임의 정밀도 계산 (0) | 2025.09.01 |
---|---|
메가위젯(Megawidget) 이란? (0) | 2025.08.18 |
파스텔 컬러 변환 (0) | 2025.07.18 |
NORMDIST, TRUNC, ROUND 함수 구현 (0) | 2025.03.26 |
BLT의 barchart에 원 그리기 (0) | 2025.03.26 |