<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # Tcl 中的數組 > 原文: [https://zetcode.com/lang/tcl/arrays/](https://zetcode.com/lang/tcl/arrays/) 在 Tcl 編程教程的這一部分中,我們將介紹數組。 我們將初始化數組并從中讀取數據。 Tcl 數組是變量的集合。 每個變量可以保存任何值,并且該數組由任意值索引。 鍵值對是無序的。 Tcl 數組是關聯數組。 ## 創建數組 可以使用`set`或`array set`命令創建 Tcl 數組。 ```tcl #!/usr/bin/tclsh set names(1) Jane set names(2) Tom set names(3) Elisabeth set names(4) Robert set names(5) Julia set names(6) Victoria puts [array exists names] puts [array size names] puts $names(1) puts $names(2) puts $names(6) ``` 我們創建一個名為`names`的數組。 數字是鍵,名稱是數組的值。 ```tcl set names(1) Jane ``` 在這一行中,我們為數組鍵 1 設置了一個值`Jane`。我們以后可以通過鍵引用該值。 ```tcl puts [array exists names] ``` `array exists`命令確定提供的參數是否為數組。 ```tcl puts [array size names] ``` 我們使用`array size`命令獲得數組的大小。 ```tcl puts $names(1) ``` 我們通過鍵訪問數組中的一個值。 ```tcl $ ./names.tcl 1 6 Jane Tom Victoria ``` 示例的輸出。 在第二個示例中,使用`array set`命令創建一個數組。 ```tcl #!/usr/bin/tclsh array set days { 1 Monday 2 Tuesday 3 Wednesday 4 Thursday 5 Friday 6 Saturday 7 Sunday } set n [array size days] puts $days(1) puts "array has $n elements" ``` 我們創建一個`days`數組。 它具有 7 個鍵值對。 ```tcl $ ./days.tcl Monday array has 7 elements ``` 示例輸出。 ## 數組是變量的集合 與列表或字典不同,數組中的項目是變量。 這意味著我們可以引用它們。 ```tcl #!/usr/bin/tclsh array set days { 1 Monday 2 Tuesday 3 Wednesday 4 Thursday 5 Friday 6 Saturday 7 Sunday } upvar #0 days(1) mon upvar #0 days(2) tue upvar #0 days(3) wed puts $mon puts $tue puts $wed ``` 在腳本中,`upvar`命令引用了`days`數組的三個變量。 ```tcl upvar #0 days(1) mon ``` `mon`變量引用以 1 索引的變量。`upvar`命令的第一個參數是上層,其中`#0`表示頂層。 也就是說,`days`數組和`mon`變量都位于同一全局名稱空間中。 ```tcl puts $mon ``` 在這里,我們通過`mon`變量引用`days`數組的項。 ```tcl $ ./colvar.tcl Monday Tuesday Wednesday ``` 示例輸出。 ## 數組獲取命令 `array get`命令返回一個包含數組元素對的列表。 ```tcl #!/usr/bin/tclsh array set days { Peter 34 Jane 17 Lucy 28 Mark 43 Anthony 36 } puts [array get days] ``` 該示例創建一個數組,并使用`array get`命令打印其鍵值對。 ```tcl $ ./arrayget.tcl Peter 34 Anthony 36 Lucy 28 Jane 17 Mark 43 ``` 這是`arrayget.tcl`腳本的輸出。 ## 遍歷數組 在以下示例中,我們將展示如何遍歷數組。 ```tcl #!/usr/bin/tclsh array set days { 1 Monday 2 Tuesday 3 Wednesday 4 Thursday 5 Friday 6 Saturday 7 Sunday } foreach {n day} [array get days] { puts "$n -> $day" } ``` 該示例創建一個數組,并使用`array get`命令打印其鍵值對。 ```tcl foreach {n day} [array get days] { ``` `array get`命令返回鍵,值元素的列表,可以使用`foreach`命令對其進行迭代。 ```tcl $ ./days2.tcl 4 -> Thursday 5 -> Friday 1 -> Monday 6 -> Saturday 2 -> Tuesday 7 -> Sunday 3 -> Wednesday ``` 這是`days2.tcl`腳本的輸出。 請注意,成對的元素沒有順序。 以下腳本使用`array names`命令遍歷數組。 ```tcl #!/usr/bin/tclsh array set nums { a 1 b 2 c 3 d 4 e 5 } puts [array names nums] foreach n [array names nums] { puts $nums($n) } ``` 我們創建一個簡單的`nums`數組并循環遍歷。 ```tcl array set nums { a 1 b 2 c 3 d 4 e 5 } ``` 我們定義一個簡單的數組。 ```tcl puts [array names nums] ``` `array names`返回一個列表,其中包含數組中所有元素的名稱(鍵)。 ```tcl foreach n [array names nums] { puts $nums($n) } ``` 我們使用鍵來獲取值。 ```tcl $ ./getnames.tcl d e a b c 4 5 1 2 3 ``` `getnames.tcl`腳本的輸出。 前面的示例使用數組的副本,因此不太適合處理大型數組。 數組搜索工具效率更高。 ```tcl #!/usr/bin/tclsh array set days { 1 Monday 2 Tuesday 3 Wednesday 4 Thursday 5 Friday 6 Saturday 7 Sunday } set start [array startsearch days] while {[array anymore days $start]} { set key [array nextelement days $start] puts $days($key) } array donesearch days $start ``` 我們使用數組搜索命令來迭代一個簡單的數組。 ```tcl set start [array startsearch days] ``` `array startsearch`命令引用數組的開頭。 ```tcl while {[array anymore days $start]} { ``` 如果在數組搜索中還有剩余要處理的元素,則`array anymore`命令返回 1。 ```tcl set key [array nextelement days $start] ``` `array nextelement`命令返回數組中下一個元素的名稱。 ```tcl array donesearch days $start ``` `array donesearch`命令終止數組搜索并破壞與該搜索關聯的所有狀態。 ## 移除元素 在本章的最后一個示例中,我們將展示如何從數組中刪除元素。 ```tcl #!/usr/bin/tclsh set names(1) Jane set names(2) Tom set names(3) Elisabeth set names(4) Robert set names(5) Julia set names(6) Victoria puts [array size names] unset names(1) unset names(2) puts [array size names] ``` 我們創建一個`names`數組。 我們使用`unset`命令從數組中刪除項目。 我們在刪除兩項之前和之后檢查數組的大小。 ```tcl set names(1) Jane ``` `set`命令用于在數組中創建一個項目。 ```tcl unset names(1) ``` 我們使用`unset`命令從數組中刪除鍵為 1 的元素。 ```tcl $ ./removing.tcl 6 4 ``` 一開始,數組中有 6 個元素。 刪除兩個元素后,剩下 4 個元素。 在 Tcl 教程的這一部分中,我們使用了 Tcl 數組。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看