Czesc,
Uczę się języka tcl i dostałem zadanko które ma działać z taką funkcja:
[join [funct [lindex $data $i]] { - }]
O ile rozumiem zapis:
[join [funct] { - }]
czyli połączenie wyjściowej listy z procedury funct w jeden string i połączenie ich separatorem '-' to w tym pierwszym przypadku nie wiem czemu ma służyć wpisanie:
[lindex $data $i]
Samo w sobie [lindex $data $i] rozumiem, wypisanie listy $data w pętli i wypisuje aktualna pozycje zależna od $i.
Mógłby ktoś mi wytłumaczyć jak poprawnie powinno wyglądać return z funct by tamta funkcja działała? Mecze się z tym już chwilkę i nigdzie odpowiedzi znaleźć nie mogłem. Na stacku jest moje pytanie ale niezbyt rozwiązuje mój problem.
proc funct {} {
set cases {"Adres" "Port" "Token"}
#lappend cases {"Adres IP"}
#lappend cases {"Port"}
#lappend cases {"Token"}
return $cases
}
#puts [funct]
set k {}
lappend k {"First Data"}
lappend k {"Second Data"}
lappend k {"Third Data"}
for {set i 0} {$i < 2} {incr i} {
puts "[lindex $k $i]"
puts "[join [funct [lindex $k $i]] { - }]"
}
Przy takim ustawieniu, wyrzuca mi błąd: "wrong # args: should be "funct"" Czyli jakby tego [lindex $k $i] w ogóle nie miało tam być...
Chodzi mi tylko o wytłumaczenie działania i przykład z życia, resztę jestem w stanie ogarnąć :)
Dzięki za pomoc.