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

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                ### 一元操作符 [TOC] | 表達式 | 翻譯為 | | --- | --- | | `+a` | `a.unaryPlus()` | | `-a` | `a.unaryMinus()` | | `!a` | `a.not()` | 這個表是說,當編譯器處理例如表達式`+a`時,它執行以下步驟: * 確定`a`的類型,令其為`T`; * 為接收者`T`查找一個帶有`operator`修飾符的無參函數`unaryPlus()`,即成員函數或擴展函數; * 如果函數不存在或不明確,則導致編譯錯誤; * 如果函數存在且其返回類型為`R`,那就表達式`+a`具有類型`R`; 【注意】這些操作以及所有其他操作都針對[基本類型](http://www.kotlincn.net/docs/reference/basic-types.html)做了優化,不會為它們引入函數調用的開銷。 以下是如何重載一元減運算符的示例: ``` data class Point(val x: Int, val y: Int) operator fun Point.unaryMinus() = Point(-x, -y) val point = Point(10, 20) fun main() { println(-point) // 輸出“Point(x=-10, y=-20)” } ``` ### 遞增與遞減 | 表達式 | 翻譯為 | | --- | --- | | `a++` | `a.inc()`返回值是`a` | | `a--` | `a.dec()`返回值是`a` | | `++a` | `a.inc()`返回值是`a+1` | | `--a` | `a.dec()`返回值是`a-1` | `inc()`和`dec()`函數必須返回一個值,它用于賦值給使用`++`或`--`操作的變量。它們不應該改變在其上調用`inc()`或`dec()`的對象。 編譯器執行以下步驟來解析后綴形式的操作符,例如`a++`: * 確定`a`的類型,令其為`T`; * 查找一個適用于類型為`T`的接收者的、帶有`operator`修飾符的無參數函數`inc()`; * 檢查函數的返回類型是`T`的子類型。 計算表達式的步驟是: * 把`a`的初始值存儲到臨時存儲`a0`中; * 把`a.inc()`結果賦值給`a`; * 把`a0`作為表達式的結果返回。 對于`a--`,步驟是完全類似的。 對于前綴形式`++a`和`--a`以相同方式解析,其步驟是: * 把`a.inc()`結果賦值給`a`; * 把`a`的新值作為表達式結果返回。
                  <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>

                              哎呀哎呀视频在线观看