好程序員-千鋒教育旗下高端IT職業教育品牌

400-811-9990
我的賬戶
好程序員

專注高端IT職業培訓

親愛的猿猿,歡迎!

已有賬號,請

如尚未注冊?

[BigData] 好程序員大數據教程Scala系列之樣例類_Option_偏函數

[復制鏈接]
194 0
葉子老師 發表于 2019-10-16 16:42:49 | 只看該作者 |閱讀模式 打印 上一主題 下一主題
  好程序員大數據教程Scala系列之樣例類_Option_偏函數,Scala中Option類型樣例類用來表示可能存在或也可能不存在的值(Option的子類有Some和None)。Some包裝了某個值,None表示沒有值。
object OptionDemo {
  def main(args: Array[String]) {
    val map = Map("a" -> 1, "b" -> 2)
    val v = map.get("b") match {
      case Some(i) => i
      case None => 0
    }
    println(v)
    //更好的方式
    val v1 = map.getOrElse("c", 0)
    println(v1)
  }
}
偏函數
被包在花括號內沒有match的一組case語句是一個偏函數,它是PartialFunction[A, B]的一個實例,A代表參數類型,B代表返回類型,常用作輸入模式匹配
object PartialFunctionDemo {
  def f: PartialFunction[String, Int] = {
    case "one" => 1
    case "two" => 2
   // case _ => -1
  }

  def main(args: Array[String]) {
    //調用f.apply("one")
    println(f("one"))
    println(f.isDefinedAt("three"))
    //拋出MatchError
    println(f("three"))
  }
}String INTERPOLATION(字符串插值)(備選)
用途:處理字符串  類型:
? s:字符串插值
? f:插值并格式化輸出
? raw:對字符串不作任何變換的輸出
Scala 2.10.0之后,引入一種新的創建字符串的機制,即 String Interpolation. 它允許用戶直接在字符串中嵌入變量的引用。
val name="James"
println(s"Hello,$name") // Hello, James
字符串插值的位置也可以放表達式,如下:
println(s"1 + 1 = ${1 + 1}")// 1 + 1 = 2
插值f 可以對字符串進行格式化,類似printf:
val height = 1.9d
val name = "James"
println(f"$name%s is $height%2.2f meters tall")  // James is 1.90 meters tall
raw類似于s,但是raw對字符串內容不作任何的轉換:
scala> s"a\nb"
res0: String =
a
b
scala> raw"a\nb"
res1: String = a\nb
好程序員大數據教程http://www.zugymq.live/bigdata.shtml

精彩內容,一鍵分享給更多人!
收藏
收藏0
轉播
轉播
分享
淘帖0
支持
支持0
反對
反對0
回復

使用道具 舉報

您需要登錄后才可以回帖

本版積分規則

關注我們
好程序員
千鋒好程序員

北京校區(總部):北京市海淀區寶盛北里西區28號中關村智誠科創大廈

深圳西部硅谷校區:深圳市寶安區寶安大道5010號深圳西部硅谷B座A區605-619

杭州龍馳智慧谷校區:浙江省杭州市下沙經濟技術開發區元成路199號龍馳智慧谷B座7層

鄭州校區:鄭州市二七區航海中路60號海為科技園C區10層、12層

Copyright 2007-2019 北京千鋒互聯科技有限公司 .All Right

京ICP備12003911號-5 京公安網11010802011455號

請您保持通訊暢通1對1咨詢馬上開啟

广东36选7玩法