溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

DT夢(mèng)工廠 第27講 Type,Array,List,Tuple模式匹配實(shí)戰(zhàn)解析

發(fā)布時(shí)間:2020-07-26 17:14:46 來(lái)源:網(wǎng)絡(luò) 閱讀:306 作者:mayjune56 欄目:大數(shù)據(jù)

王家林親授《DT大數(shù)據(jù)夢(mèng)工廠》大數(shù)據(jù)實(shí)戰(zhàn)視頻 Scala 深入淺出實(shí)戰(zhàn)經(jīng)典(1-87講)完整視頻、PPT、代碼下載:
百度云盤(pán):http://pan.baidu.com/s/1c0noOt6 
騰訊微云:http://url.cn/TnGbdC 
360云盤(pán):http://yunpan.cn/cQ4c2UALDjSKy 訪問(wèn)密碼 45e2
土豆:http://www.tudou.com/programs/view/dHz5JKJxurM/
優(yōu)酷:http://v.youku.com/v_show/id_XMTI4OTcwNzY2MA==.html?from=s1.8-1-1.2
愛(ài)奇藝:http://www.iqiyi.com/w_19rru5bi79.html#vfrm=2-3-0-1
騰訊視頻:http://v.qq.com/boke/page/k/0/d/k016008s0rd.html
技術(shù)愛(ài)好者尤其是大數(shù)據(jù)愛(ài)好者 可以加DT大數(shù)據(jù)夢(mèng)工廠的qq群

DT大數(shù)據(jù)夢(mèng)工廠① :462923555 
DT大數(shù)據(jù)夢(mèng)工廠②:437123764 
DT大數(shù)據(jù)夢(mèng)工廠③ :418110145

微信公眾賬號(hào): DT_Spark
王家林老師微信號(hào): 18610086859
王家林老師QQ: 1740415547
王家林老師郵箱: 18610086859@126.com

本視頻由王家林老師, 親自講解, 完全通過(guò)代碼實(shí)戰(zhàn)把您帶人大數(shù)據(jù)的時(shí)代.

package com.dt.scala.pattern_match

/**
 * @author iken
 * @date 2015-08-29
 */
object PatternMatchMore {
  def main( args : Array[String] ){
    
    /*
     * 1. 對(duì)一個(gè)未知類型的變量匹配到相應(yīng)的類型上去
     *    這是如此的高級(jí),模式匹配可以在程序運(yùn)行的時(shí)候,智能判斷出被匹配的內(nèi)容的類型
     *    注意:Map沒(méi)有指定其類型,原因是scala在進(jìn)行模式匹配時(shí),對(duì)于接口和泛型,scala會(huì)擦出具體的類型
     *    所以使用了占位符
     */
    def match_type( t : Any ) = t match{
      case p: Int => println("It is a integer!")
      case p: String => println("It is a Integer!")
      case m: Map[_,_] => m.foreach(println)
      case _ =>  println("unknow type!")
    }
    
    match_type(2)
    match_type(Map("Scala" -> "Spark"))
      
    /*
     * 2.對(duì)一個(gè)未知的數(shù)組進(jìn)行匹配,它可以將數(shù)組匹配到具體形式的case上
     *   case1中是說(shuō)這個(gè)數(shù)組只有一個(gè)元素,而且該元素必須是0
     *   case2中是說(shuō)這個(gè)數(shù)組具有兩個(gè)任意元素
     *   case3中是說(shuō)這個(gè)數(shù)據(jù)具有任意多元素,且第一個(gè)元素必須是0
     */
    def match_array( arr : Any ) = arr match{
      case Array(0) => println("Array"+"0")
      case Array(x,y) => println("Array "+x+" "+y)
      case Array(0,_*) => println("Array"+"0 ...")
      case _ =>  println("some thing!")
    }
    
    match_array(Array(0))
    match_array(Array(0,1))
    match_array(Array(0,1,2,3,4))
    match_array(Array("hello","world"))
    
    /*
     * 3.對(duì)一個(gè)未知的List進(jìn)行匹配,它可以將數(shù)組匹配到具體形式的case上
     *   case1中是說(shuō)這個(gè)List只有一個(gè)元素,而且該元素必須是0
     *   case2中是說(shuō)這個(gè)List具有兩個(gè)任意元素
     *   case3中是說(shuō)這個(gè)List具有任意多元素,且第一個(gè)元素必須是0
     */
    def match_list( lst : Any ) = lst match{
      case 0 :: Nil => println("List"+"0")
      case x :: y :: Nil => println("List "+x+" "+y)
      case 0 :: tail => println("List"+"0 ...")
      case _ =>  println("some thing!")
    }
    
    match_list(List(0))
    match_list(List(0,1))
    match_list(List(0,1,2,3,4))
    match_list(List("hello","world"))
    
     /*
     * 4.對(duì)一個(gè)未知的Tuple進(jìn)行匹配,它可以將數(shù)組匹配到具體形式的case上
     *   case1中是說(shuō)這個(gè)Tuple只有一個(gè)元素,而且該元素必須是0
     *   case2中是說(shuō)這個(gè)Tuple具有兩個(gè)任意元素
     *   case3中是說(shuō)這個(gè)Tuple具有任意多元素,且第一個(gè)元素必須是0
     */   
    def match_tuple( tuple : Any ) = tuple match{
      case (0,_) => println("List"+"0")
      case (x,_) => println("List "+x)
      case _ =>  println("some thing!")
    }
    match_tuple((0,"scala"))
    match_tuple(("hello",1))
    match_tuple((0,1,2,3,4)) 
  }
}


向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI