讓怙我們有兩個類,如下所示:TclOO:訪問嵌套對象
oo::class create InsideThing {
constructor {} {
puts "Made a [self] that is an InsideThing"
}
destructor {
puts "Deleted a [self] that is an InsideThing"
}
method echo {text} {
puts "[self]: $text"
}
}
oo::class create Container {
constructor {} {
puts "Created a [self] that is a Container"
InsideThing create inner1
InsideThing create inner2
}
destructor {
puts "Deleted a [self] that is a Container"
}
method echo1 {text} {
# how to do something like this:
$inner1 echo $text
}
}
我怎麼會去訪問這些內置物?我想要做的事情如下:
set c [Container new]
# (1) accessing inner1 indirectly
$c echo1 "Hallo World"
# (2) accessing inner1 dirctly
$c inner1 echo "Hallo World"
有沒有辦法做到這一點?這種做法甚至有意義嗎?
我想要實現的是一個嵌套的對象結構(基本上樹狀)。我希望能夠通過調用節點上的方法(例如父節點,子節點)來導航此結構。也破壞了根應該銷燬所有的孩子(這就是爲什麼我用create
創建父命名空間內嵌套的對象)
非常感謝。我期望它是一些簡單的東西,非常有用,知道它是非常有用的;) – PeterE 2014-11-05 16:00:22
對於任何人一起閱讀,我在某些地方使用'innerABC'而不是'inner1'來使它更清晰,名稱與什麼相匹配。就這樣… – 2014-11-05 16:19:13