<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>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ### 向量 Vectors也是一種有序的集合。這種集合對于從最后面刪除一個元素,或者獲取最后面一個元素是非常高效的(O(1))。這意味著對于向vector里面添加元素使用conj被使用cons更高效。Vector對于以索引的方式訪問某個元素(用nth命令)或者修改某個元素(用assoc)來說非常的高效。函數定義的時候指定參數列表用的就是vector。 下面是兩種創建vector的方法: ``` (def stooges (vector "Moe" "Larry" "Curly")) (def stooges ["Moe" "Larry" "Curly"]) ``` 除非你要寫的程序要特別用到list的從前面添加/刪除效率很高的這個特性, 否則一般來說我們鼓勵你們用vector而不是lists。這主要是因為語法上 `[...]` 比 ‘ `(...)` 更自然,更不容易弄混淆。因為函數,宏以及special form的語法也是 `(...)。` `get` 獲取vector里面指定索引的元素. 我們后面會看到get也可以從map里面獲取指定key的value。索引是從0開始的。 `get` 函數和函數 `nth` 類似. 它們都接收一個可選的默認值參數 — 如果給定的索引超出邊界,那么會返回這個默認值。如果沒有指定默認值而索引又超出邊界了, `get` 函數會返回 `nil` 而 `nth` 會拋出一個異常. 看例子: ``` (get stooges 1 "unknown") ; -> "Larry" (get stooges 3 "unknown") ; -> "unknown" ``` `assoc` 可以對 vectors 和 maps進行操作。 當用在 vector上的時候, 它會從給定的vector創建一個新的vector, 而指定的那個索引所對應的元素被替換掉。如果指定的這個索引等于vector里面元素的數目,那么我們會把這個元素加到新vector的最后面去;如果指定的索引比vector的大小要大,那么一個 `IndexOutOfBoundsException` 異常會被拋出來。看代碼: ``` (assoc stooges 2 "Shemp") ; -> ["Moe" "Larry" "Shemp"] ``` `subvec` 獲取一個給定vector的子vector。它接受三個參數,一個vectore, 一個起始索引以及一個可選的結束索引。如果結束索引沒有指定,那么默認的結束索引就是vector的大小。新的vector和原來的vector共享內存(所以高效)。 所有上面的對于list的例子代碼對于vector同樣適用。 `peek` 和 `pop` 函數對于vector同樣適用, 只是它們操作的是vector的最后一個元素,而對于list操作的則是第一個函數。 `conj` 函數從一個給定的vector創建一個新的vector — 添加一個元素到新的vector的最后面去. `cons` 函數從一個給定的vector創建一個新的vector — 添加一個新的元素到vector的最前面去。
                  <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>

                              哎呀哎呀视频在线观看