Programming/TclTk

Tcl 동적바인딩, 여러 값 출력

Hunveloper 2022. 10. 20. 09:27
728x90

namespace eval NS1 {
}

proc NS1::PRINT { str } {
    puts str
}

namespace eval NS2 {
}

proc NS2::PRINT { str } {
    puts str
}

위와 같은 namespace와 procedure이 존재할때 main에서 각각의 값을 호출하기 위해서는 아래와 같이 호출해야 한다.

$NS1::PRINT
$NS2::PRINT

 

위의 경우 두개의 네임스페이스가 존재하지만 만약에 네임스페이스가 많아지고, 동일한 작업들을 반복한다면 번거로워 질것이다.

 

namespace eval NS1 {
}

proc NS1::PRINT {} {
	puts "printing NS1"
}

namespace eval NS2 {
}

proc NS2::PRINT {} {
	puts "printing NS2"
}

NS1::PRINT
NS2::PRINT

puts "\n====new line====\n"

foreach T {NS1 NS2} {
	$T\::PRINT
}

foreach문을 이용하여 namespace혹은 procedure명을 자동으로 불어와준다면 반복적인 함수 호출에 대해서 손쉽게 대응할 수 있다

728x90
728x90