大数据教程分享Scala系列之Option_偏函数_StringOption类型在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
|