본문으로 바로가기

namespace ensemble

category Tcl & Tk/팁 (Tip) 2025. 9. 1. 11:55

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