<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智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                樣例類可以讓 Scala 編譯器自動為類添加一些便捷設定,可以使用樣例類來替換伴生,減少代碼量。 ```scala case class Student(name:String, age:Int) //定義樣例類 val stu=Student("Jason",19) // 創建樣例類的實例,無需 new 關鍵字 println(stu.name) //訪問對象屬性 ``` * 樣例類構造參數默認聲明為`val`,自動實現類構造參數的getter方法; * 樣例類構造參數聲明為`var`時,自動實現類構造參數的setter和getter方法; * 樣例類自動創建伴生對象; * 樣例類自動實現的其他方法 toString()、equals()、copy()、hashCode()、apply()、unapply(); <br/> **1. 定義&調用樣例類** ```scala // 樣例類 case class Student(var name:String, var age:Int) object App { def main(args: Array[String]): Unit = { // 因為樣例類自動創建伴生對象,所以可以不用new val stu = Student("Tom", 20) println(stu.name) // Tom Student.name // 編譯報錯 } } ``` <br/> **2. `case class`與`class`的區別:** * 樣例類通常用于描述不可變的數據,數據完全依賴構造參數。如果一個對象在內部執行有狀態計算,或者表現出其他類型的復雜行為,那么它應該是一個普通類。 * 樣例類默認可用伴生對象方式創建實例,普通類需要定義 apply()。 * 樣例類默認不可變,通過模式匹配可分解 * 兩個樣例類`==`操作時,通過按值比較而不是按引用 * 樣例類默認支持模式匹配,普通類需要定義 unapply(),該方法將在后面的模式匹配中用到。 總的來說,樣例類本質還是方便我們創建、操作的普通類而已,可以說編譯器以極小的轉換為我們帶來了極大的便利,代價便是使用 case 修飾符以及類和對象會變得稍微大一些。變大的原因是產生了附加的方法以及對每個構造器參數添加了隱含的前綴,不過樣例類最大的好處還是支持模式匹配。
                  <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>

                              哎呀哎呀视频在线观看