<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 功能強大 支持多語言、二開方便! 廣告
                ### Tuple為編程提供許多便利 * 函數可以通過tuple返回多個值 * tuple可以存儲在容器類中,代替java bean * 可以一次為多個變量賦值 ### 使用tuple的例子 ~~~ val (one, two) = (1, 2) one //res0: Int = 1 two //res1: Int = 2 def sellerAndItemId(orderId: Int): (Int, Int) = orderId match { case 0 => (1, 2) } val (sellerId, itemId) = sellerAndItemId(0) sellerId // sellerId: Int = 1 itemId // itemId: Int = 2 val sellerItem = sellerAndItemId(0) sellerItem._1 //res4: Int = 1 sellerItem._2 //res5: Int = 2 ~~~ ### 用模式匹配增加tuple可讀性 ~~~ val sampleList = List((1, 2, 3), (4, 5, 6), (7, 8, 9)) sampleList.map(x => s"${x._1}_${x._2}_${x._3}") //res0: List[String] = List(1_2_3, 4_5_6, 7_8_9) sampleList.map { case (orderId, shopId, itemId) => s"${orderId}_${shopId}_$itemId" } //res1: List[String] = List(1_2_3, 4_5_6, 7_8_9) ~~~ 上下兩個map做了同樣的事情,但下一個map為tuple中的三個值都給了名字,增加了代碼的可讀性. ### match和java和switch很像,但有區別 1. match是表達式,會返回值 2. match不需要”break” 3. 如果沒有任何符合要求的case,match會拋異常,因為是表達式 4. match可以匹配任何東西,switch只能匹配數字或字符串常量 ~~~ //case如果是常量,就在值相等時匹配. //如果是變量,就匹配任何值. def describe(x: Any) = x match { case 5 => "five" case true => "truth" case "hello" => "hi!" case Nil => "the empty list" case somethingElse => "something else " + somethingElse } ~~~ case class,tuple以及列表都可以在匹配的同時捕獲內部的內容. ~~~ case class Sample(a:String,b:String,c:String,d:String,e:String) def showContent(x: Any) = x match { case Sample(a,b,c,d,e) => s"Sample $a.$b.$c.$d.$e" case (a,b,c,d,e) => s"tuple $a,$b,$c,$d,$e" case head::second::rest => s"list head:$head second:$second rest:$rest" } ~~~ ### Case class 1. 模式匹配過程中其實調用了類的unapply方法 2. Case class 是為模式匹配(以及其他一些方面)提供了特別的便利的類 3. Case class 還是普通的class,但是它自動為你實現了apply,unapply,toString等方法 4. 其實tuple就是泛型的case class
                  <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>

                              哎呀哎呀视频在线观看