_下劃線的使用

  1. 存在性類型:Existential types

    val site = List(Option("Runoob"),Option(12),None)
    //Option[_]表示Option集合里可以是各種類型韧掩,應(yīng)為上面是字符串志笼,數(shù)字類型,也可以用Option[Any]來替換
    def test(l:List[Option[_]]):Unit={
    for(v<-l)
        {
            print(v.getOrElse("默認(rèn)值"))
        }
     }
    test(site)
    
  2. 臨時(shí)變量:Ignored variables

     val _ = 5
    
  3. 臨時(shí)參數(shù):Ignored parameters

     List(1, 2, 3). foreach { _ => println("Hi") }
    
  4. 通配模式:Wildcard patterns

     Some(5) match { case Some(_) => println("Yes") }
     match {
      case List(1,_,_) => " a list with three element and the       first element is 1"
      case List(_*)  => " a list with zero or more elements "
      case Map[_,_] => " matches a map with any key type and any value type "
      case _ =>
    }
    
    //模式匹配       
     abstract class Item
     case class Product(description: String, price: Double)  extends Item
     case class Bundle(description: String, discount: Double, items: Item*) extends Item
    
     def price(it: Item): Double = it match {
     case Product(_, p) => p
     //這里注釋下map(price _) 注意什么都沒有草描,_表示的是Product對象堪澎,取他的屬性price,不知道為什么要這么寫~~
     case Bundle(_, disc, its @ _*) => its.map(price _).sum * (100-disc) /100
     //這里@表示將嵌套的值綁定到變量its
     }
     //測試
     val bun2 = Bundle("Appliance sale",10.0,Product("Haier Refrigerato", 3000.0),Product("Geli air conditionor",2000.0))
      println(price(bun2))
    
  5. 通配導(dǎo)入:Wildcard imports

         import java.util._
    
  6. 隱藏導(dǎo)入:Hiding imports

       // Imports all the members of the object Fun but renames Foo to Bar
     import com.test.Fun.{ Foo => Bar , _ }
    
       // Imports all the members except Foo. To exclude a member rename it to _
     import com.test.Fun.{ Foo => _ , _ }
    
  7. 連接字母和標(biāo)點(diǎn)符號(hào):Joining letters to punctuation

       def bang_!(x: Int) = 5
    
  8. 偏應(yīng)用函數(shù):Partially applied functions

    def fun = {
    // Some code
    }
    val funLike = fun _
    
    List(1, 2, 3) foreach println _
    
    1 to 5 map (10 * _)
    
    foo _               // Eta expansion of method into method value
    
    foo(_)              // Partial function application
    Example showing why foo(_) and foo _ are different:
    
     trait PlaceholderExample {
    def process[A](f: A => Unit)
    val set: Set[_ => Unit]
        set.foreach(process _) // Error 
        set.foreach(process(_)) // No Error
    }
    
  9. 初始化默認(rèn)值:default value

    var i: Int = _
    
  10. 作為參數(shù)名:
    //訪問map
    var m3 = Map((1,100), (2,200))
    for(e<-m3) println(e._1 + ": " + e._2)
    m3 filter (e=>e.1>1)
    m3 filterKeys (
    >1)
    m3.map(e=>(e._1*10, e._2))
    m3 map (e=>e._2)

//訪問元組:tuple getters
(1,2)._2

  1. 參數(shù)序列:parameters Sequence
    *作為一個(gè)整體,告訴編譯器你希望將某個(gè)參數(shù)當(dāng)作參數(shù)序列處理。例如val s = sum(1 to 5:)就是將1 to 5當(dāng)作參數(shù)序列處理。
    //Range轉(zhuǎn)換為List
    List(1 to 5:_
    )

//Range轉(zhuǎn)換為Vector
Vector(1 to 5: _*)

//可變參數(shù)中
def capitalizeAll(args: String*) = {
args.map { arg =>
arg.capitalize
}
}

val arr = Array("what's", "up", "doc?")
capitalizeAll(arr: _*)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末舶吗,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子贮折,更是在濱河造成了極大的恐慌裤翩,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,029評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件调榄,死亡現(xiàn)場離奇詭異,居然都是意外死亡呵扛,警方通過查閱死者的電腦和手機(jī)每庆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,395評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來今穿,“玉大人缤灵,你說我怎么就攤上這事±渡梗” “怎么了腮出?”我有些...
    開封第一講書人閱讀 157,570評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長芝薇。 經(jīng)常有香客問我胚嘲,道長,這世上最難降的妖魔是什么洛二? 我笑而不...
    開封第一講書人閱讀 56,535評論 1 284
  • 正文 為了忘掉前任馋劈,我火速辦了婚禮,結(jié)果婚禮上晾嘶,老公的妹妹穿的比我還像新娘妓雾。我一直安慰自己,他們只是感情好垒迂,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,650評論 6 386
  • 文/花漫 我一把揭開白布械姻。 她就那樣靜靜地躺著,像睡著了一般机断。 火紅的嫁衣襯著肌膚如雪楷拳。 梳的紋絲不亂的頭發(fā)上绣夺,一...
    開封第一講書人閱讀 49,850評論 1 290
  • 那天,我揣著相機(jī)與錄音唯竹,去河邊找鬼乐导。 笑死,一個(gè)胖子當(dāng)著我的面吹牛浸颓,可吹牛的內(nèi)容都是我干的物臂。 我是一名探鬼主播,決...
    沈念sama閱讀 39,006評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼产上,長吁一口氣:“原來是場噩夢啊……” “哼棵磷!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起晋涣,我...
    開封第一講書人閱讀 37,747評論 0 268
  • 序言:老撾萬榮一對情侶失蹤仪媒,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后谢鹊,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體算吩,經(jīng)...
    沈念sama閱讀 44,207評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,536評論 2 327
  • 正文 我和宋清朗相戀三年佃扼,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了偎巢。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,683評論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡兼耀,死狀恐怖压昼,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情瘤运,我是刑警寧澤窍霞,帶...
    沈念sama閱讀 34,342評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站拯坟,受9級特大地震影響但金,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜似谁,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,964評論 3 315
  • 文/蒙蒙 一傲绣、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧巩踏,春花似錦秃诵、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,772評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春毅往,著一層夾襖步出監(jiān)牢的瞬間牵咙,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,004評論 1 266
  • 我被黑心中介騙來泰國打工攀唯, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留洁桌,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,401評論 2 360
  • 正文 我出身青樓侯嘀,卻偏偏與公主長得像另凌,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子戒幔,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,566評論 2 349

推薦閱讀更多精彩內(nèi)容

  • 下劃線這個(gè)符號(hào)幾乎貫穿了任何一本Scala編程書籍吠谢,并且在不同的場景下具有不同的含義,繞暈了不少初學(xué)者诗茎。正因如此工坊,...
    Helen_Cat閱讀 2,199評論 0 3
  • Scala的集合類可以從三個(gè)維度進(jìn)行切分: 可變與不可變集合(Immutable and mutable coll...
    時(shí)待吾閱讀 5,807評論 0 4
  • Scala與Java的關(guān)系 Scala與Java的關(guān)系是非常緊密的!敢订! 因?yàn)镾cala是基于Java虛擬機(jī)王污,也就是...
    燈火gg閱讀 3,427評論 1 24
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)楚午,斷路器玉掸,智...
    卡卡羅2017閱讀 134,633評論 18 139
  • 1. 已經(jīng)付了錢的大叔將報(bào)紙一囫圇卷起,前后瞧瞧自行車醒叁,并沒有存放報(bào)紙的合適位置。趕巧又碰上這朦朧天氣泊业,滴答著幾滴...
    臭小媽媽閱讀 276評論 0 0