Tcl - Listy
Lista jest jednym z podstawowych typów danych dostępnych w Tcl. Służy do reprezentowania uporządkowanej kolekcji przedmiotów. Może zawierać różne typy elementów na tej samej liście. Ponadto lista może zawierać inną listę.
Ważną rzeczą, na którą należy zwrócić uwagę, jest to, że listy te są reprezentowane w całości jako ciągi znaków i przetwarzane w celu utworzenia indywidualnych pozycji, gdy jest to wymagane. Dlatego unikaj dużych list iw takich przypadkach; użyj tablicy.
Tworzenie listy
Ogólna składnia listy jest podana poniżej -
set listName { item1 item2 item3 .. itemn }
# or
set listName [list item1 item2 item3]
# or 
set listName [split "items separated by a character" split_character] 
    Poniżej podano kilka przykładów -
#!/usr/bin/tclsh
set colorList1 {red green blue}
set colorList2 [list red green blue]
set colorList3 [split "red_green_blue" _]
puts $colorList1 puts $colorList2
puts $colorList3 
    Wykonanie powyższego kodu daje następujący wynik -
red green blue
red green blue
red green blue 
    Dołączanie pozycji do listy
Składnia dołączania pozycji do listy jest podana poniżej -
append listName split_character value
# or
lappend listName value 
    Poniżej podano kilka przykładów -
#!/usr/bin/tclsh
set var orange
append var " " "blue"
lappend var "red" 
lappend var "green" 
puts $var 
    Wykonanie powyższego kodu daje następujący wynik -
orange blue red green 
    Długość listy
Składnia długości listy jest podana poniżej -
llength listName 
    Przykład długości listy podano poniżej -
#!/usr/bin/tclsh
set var {orange blue red green}
puts [llength $var] 
    Wykonanie powyższego kodu daje następujący wynik -
4 
    Pozycja listy w indeksie
Składnia wyboru pozycji listy pod określonym indeksem jest podana poniżej -
lindex listname index 
    Przykład pozycji listy pod indeksem podano poniżej -
#!/usr/bin/tclsh
set var {orange blue red green}
puts [lindex $var  1] 
    Wykonanie powyższego kodu daje następujący wynik -
blue 
    Wstaw element w indeksie
Poniżej podano składnię wstawiania elementów listy pod określonym indeksem.
linsert listname index value1 value2..valuen 
    Przykład wstawiania pozycji listy pod określonym indeksem podano poniżej.
#!/usr/bin/tclsh
set var {orange blue red green}
set var [linsert  $var 3 black white] puts $var 
    Wykonanie powyższego kodu daje następujący wynik -
orange blue red black white green 
    Zamień pozycje na indeksach
Składnia zastępowania pozycji listy w określonych indeksach jest podana poniżej -
lreplace listname firstindex lastindex value1 value2..valuen 
    Przykład zamiany pozycji listy według określonych indeksów podano poniżej.
#!/usr/bin/tclsh
set var {orange blue red green}
set var [lreplace $var 2 3 black white] puts $var 
    Wykonanie powyższego kodu daje następujący wynik -
orange blue black white 
    Ustaw element na indeks
Składnia ustawiania pozycji listy w określonym indeksie jest podana poniżej -
lset listname index value 
    Przykład ustawienia pozycji listy pod określonym indeksem podano poniżej -
#!/usr/bin/tclsh
set var {orange blue red green}
lset var 0 black 
puts $var 
    Wykonanie powyższego kodu daje następujący wynik -
black blue red green 
    Przekształć listę w zmienne
Składnia kopiowania wartości do zmiennych jest podana poniżej -
lassign listname variable1 variable2.. variablen 
    Przykład przekształcenia listy w zmienne podano poniżej -
#!/usr/bin/tclsh
set var {orange blue red green}
lassign $var colour1 colour2
puts $colour1 puts $colour2 
    Wykonanie powyższego kodu daje następujący wynik -
orange
blue 
    Sortowanie listy
Składnię sortowania listy podano poniżej -
lsort listname 
    Przykład sortowania listy podano poniżej -
#!/usr/bin/tclsh
set var {orange blue red green}
set var [lsort $var] puts $var 
    Wykonanie powyższego kodu daje następujący wynik -
blue green orange red