ITPub博客

首页 > 大数据 > 数据挖掘 > 好程序员大数据教程分享Scala系列之Option_偏函数_String

好程序员大数据教程分享Scala系列之Option_偏函数_String

原创 数据挖掘 作者:好程序员IT 时间:2019-10-14 16:43:15 0 删除 编辑

好程序员大数据教程分享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博客 ” ,链接:https://blog.itpub.net/69913892/viewspace-2659919/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
欢迎关注公众号:好程序员特训营 web前端教程分享 723729549 大数据教程分享 703503210

注册时间:2019-03-20

  • 博文量
    539
  • 访问量
    410766