<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國際加速解決方案。 廣告
                我們講到的最后一種Vimscript類型將是字典。 Vimscript字典類似于Python中的dict,Ruby中的hash,和Javascript中的object。 字典用花括號創建。值是異質的,但_鍵會被強制轉換成字符串_。就是這么簡單,你沒想到吧? 執行這個命令: ~~~ :echo {'a': 1, 100: 'foo'} ~~~ Vim顯示`{'a':1,'100':'foo'}`,這說明Vimscript的確把鍵強制轉換為字符串,同時保留值不變。 Vimscript避免了Javascript標準的蠢笨之處,允許你在字典的最后一個元素后留下一個逗號。 (譯注:在Javascript的標準中,最后一個元素后面不能留下一個逗號。 但在Firefox里,留下那個逗號是允許的,不過這是Firefox的問題。) 執行下面的命令: ~~~ :echo {'a': 1, 100: 'foo',} ~~~ Vim再次顯示`{'a':1,'100':'foo'}`(譯注:結尾小逗號不見了)。你應該_總是_在字典里留下一個多余的逗號,?_尤其_是當字典的定義跨越多行的時候,這樣增加新項的時候將不容易犯錯。 ## 索引 查找字典中的一個值的語法跟大多數語言是一樣的。執行這個命令: ~~~ :echo {'a': 1, 100: 'foo',}['a'] ~~~ Vim顯示`1`。試試使用不是字符串的索引: ~~~ :echo {'a': 1, 100: 'foo',}[100] ~~~ Vim會在查找之前把索引強制轉換成字符串,因為鍵只能是字符串,這么做是合理的。 當鍵僅由字母,數字和/或下劃線組成時,Vimscript也支持Javascript風格的"點"查找。 試試下面的命令: ~~~ :echo {'a': 1, 100: 'foo',}.a :echo {'a': 1, 100: 'foo',}.100 ~~~ 兩種情況下,Vim都顯示了正確的元素。使用哪種索引字典的方式取決于你自己的偏好。 ## 賦值和添加 像對待變量一樣賦值給字典中的項,就可以在字典中輕松地添加新的項。 ~~~ :let foo = {'a': 1} :let foo.a = 100 :let foo.b = 200 :echo foo ~~~ Vim顯示`{'a': 100, 'b': 200}`。賦值和添加一個新項的方式是一樣的。 ## 移除項 有兩種方法可以移除字典中的項。執行下面的命令: ~~~ :let test = remove(foo, 'a') :unlet foo.b :echo foo :echo test ~~~ Vim顯示`{}`和`100`。`remove`函數將移除給定字典的給定鍵對應的項,并返回被移除的值。?`unlet`命令也能移除字典中的項,只是不返回值。 你不能移除字典中不存在的項。試試執行這個命令: ~~~ :unlet foo["asdf"] ~~~ Vim拋出一個錯誤。 選擇`remove`還是`unlet`很大程度上取決于個人偏好。如果非要我說,我推薦使用`remove`, 因為它比`unlet`更靈活。`remove`可以做任何`unlet`能做的事,反過來不成立。 所以選擇`remove`可以一招鮮,吃遍天。 ## 字典函數 就像列表,Vim有許許多多內置的字典函數。執行下面的命令: ~~~ :echom get({'a': 100}, 'a', 'default') :echom get({'a': 100}, 'b', 'default') ~~~ Vim顯示`100`和`default`,如同列表版本的`get`函數. 你也可以檢查給定字典里是否有給定的鍵。執行這個命令: ~~~ :echom has_key({'a': 100}, 'a') :echom has_key({'a': 100}, 'b') ~~~ Vim顯示`1`和`0`。不要忘了,Vimscript把`0`當作假而其他數字則是真。 你可以用`items`從一個字典中獲取對應的鍵值對,執行這個命令: ~~~ :echo items({'a': 100, 'b': 200}) ~~~ Vim將顯示`[['a',100],['b',200]]`這樣的嵌套列表。到目前為止,Vimscript字典_不一定_是有序的, 所以不要指望`items`的返回結果是有序的! 你可以用`keys`返回字典的所有的鍵和`values`返回所有的值。它們的作用一如其名——你可以查一下。 ## 練習 閱讀`:help Dictionary`。看完它。注意大寫`D`。 閱讀`:help get()`. 閱讀`:help has_key()`. 閱讀`:help items()`. 閱讀`:help keys()`. 閱讀`:help values()`.
                  <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>

                              哎呀哎呀视频在线观看