好程式設計師大資料教程分享Scala系列之Option_偏函式_String
好程式設計師大資料教程分享Scala系列之Option_偏函式_String
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
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913892/viewspace-2659919/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 大資料Scala系列之樣例類_Option_偏函式大資料函式
- 好程式設計師大資料教程Scala系列之高階函式程式設計師大資料函式
- 好程式設計師大資料教程分享Scala系列之閉包程式設計師大資料
- 好程式設計師大資料教程Scala系列之類程式設計師大資料
- 好程式設計師大資料學習路線分享Scala系列之集合操作函式程式設計師大資料函式
- 好程式設計師大資料教程分享Scala系列之檔案以及正規表示式程式設計師大資料
- 好程式設計師大資料教程Scala系列之繼承程式設計師大資料繼承
- 好程式設計師大資料分享Scala系列之柯里化程式設計師大資料
- 好程式設計師大資料學習路線分享Scala系列之物件程式設計師大資料物件
- 好程式設計師大資料教程Scala系列之隱式轉換和隱式引數程式設計師大資料
- 好程式設計師大資料培訓分享spark之Scala程式設計師大資料Spark
- 好程式設計師大資料學習路線分享Scala系列之抽象類程式設計師大資料抽象
- 好程式設計師大資料學習路線分享Scala系列之陣列程式設計師大資料陣列
- 好程式設計師大資料學習路線分享Scala系列之泛型程式設計師大資料泛型
- 好程式設計師大資料學習路線分享Scala系列之對映Map程式設計師大資料
- 好程式設計師大資料學習路線分享Scala系列之基礎篇程式設計師大資料
- 好程式設計師大資料學習路線分享spark之Scala程式設計師大資料Spark
- 好程式設計師大資料教程Scala系列之方法的巢狀和方法多型程式設計師大資料巢狀多型
- 好程式設計師大資料培訓分享之《MySQL資料庫》常用函式整理程式設計師大資料MySql資料庫函式
- 好程式設計師大資料培訓分享之hive常用內部函式程式設計師大資料Hive函式
- 好程式設計師大資料教程分享之Hadoop優缺點程式設計師大資料Hadoop
- 好程式設計師大資料培訓分享之hive常見自定義函式程式設計師大資料Hive函式
- 好程式設計師大資料學習路線分享UDF函式程式設計師大資料函式
- 好程式設計師大資料教程分享實用的大資料之陣列程式設計師大資料陣列
- 好程式設計師大資料學習路線分享高階函式程式設計師大資料函式
- 好程式設計師大資料教程分享大資料之流程控制程式設計師大資料
- 好程式設計師大資料教程分享:HDFS基本概念程式設計師大資料
- 好程式設計師Python教程系列遞迴函式與匿名函式呼叫程式設計師Python遞迴函式
- scala簡明教程:偏函式、高階函式、Future非同步程式設計、隱式轉換函式非同步程式設計
- 好程式設計師大資料學習路線分享Scala分支和迴圈程式設計師大資料
- 好程式設計師大資料教程分享HadoopHDFS操作命令總結程式設計師大資料Hadoop
- 好程式設計師大資料學習路線分享函式+map對映+元祖程式設計師大資料函式
- 好程式設計師Python培訓分享函數語言程式設計之匿名函式程式設計師Python函數函式
- 好程式設計師大資料學習路線分享大資料之字串程式設計師大資料字串
- 好程式設計師web前端教程:Math函式程式設計師Web前端函式
- 好程式設計師Java教程分享Java之設計模式程式設計師Java設計模式
- 好程式設計師Python教程系列分享之Python語言元素之運算子程式設計師Python
- 好程式設計師Python教程系列分享之Python語言元素之變數程式設計師Python變數