'de uplevel komutu anlaşılamıyor TCL'de yükseltme düzeyini anlama konusunda bazı sorunlar yaşıyorum. Brent Welch'in TCL ve Tk'deki pratik programcılığını okuyorum ve anlayamadığım bir örnek var. İşte bu:TCL
proc lassign {valueList args} {
if {[llength $args] == 0} {
error "wrong # args:lassign list varname ?varname...?"
}
if {[llength $valueList] == 0} {
#Ensure one trip through the foreach loop
set valueList [List {}]
}
uplevel 1 [list foreach $args $valueList {break}]
return [lrange $valueList [llength $args] end]
}
Birisi bana açıklayabilir mi? Kitabın açıklamasında bana yeterince yardımcı olmadı :(
8.6'da, koordinler içeren 'uplevel # 1' için bir kullanım bulmayı başardık. Bu on yıl boyunca yasal olmasına rağmen, bu özel form için ilk pratik kullanım _ever_ olarak kabul edildi. –
* # * sözdizimi şu şekilde açıklanmıştır: "Eğer * seviyesi * bir sayı ve ardından bir sayı içeriyorsa, bu sayı mutlak bir seviye numarası verir." http://www.tcl.tk/man/tcl8.5/TclCmd/uplevel.htm –
@DonalFellows En üstteki 'coroutine' yığınının altını çizmeyin. –