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.

  在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"anb"
res0: String =
a
b

scala> raw"anb"
res1: String = anb

相关文章
|
4月前
|
分布式计算 Java 大数据
Scala:样例类、模式匹配、Option、偏函数、泛型(三)
Scala:样例类、模式匹配、Option、偏函数、泛型(三)
51 0
|
5月前
|
Scala
163 Scala 类
163 Scala 类
20 0
|
API Scala
Scala中的偏函数
Scala中的偏函数
|
安全 程序员 API
深入探索Scala的Option
深入探索Scala的Option
|
存储 分布式计算 Java
一天学完spark的Scala基础语法教程十、类和对象(idea版本)
一天学完spark的Scala基础语法教程十、类和对象(idea版本)
96 0
一天学完spark的Scala基础语法教程十、类和对象(idea版本)
|
Java Scala
Scala学习笔记(六) Scala的偏函数和偏应用函数
Scala学习笔记(六) Scala的偏函数和偏应用函数
227 0
|
Java Scala
Scala学习笔记(四) 类的初步
Scala学习笔记(四) 类的初步
104 0
|
Java 程序员 Scala
Scala基础教程 - 单例对象、伴生类是什么?
Scala基础教程 - 单例对象、伴生类是什么?
187 0
|
大数据 Java Scala
大数据Scala系列之类
大数据Scala系列之类 类的定义 Scala 访问修饰符基本和Java的一样,分别有:private,protected,public。 如果没有指定访问修饰符符,默认情况下,Scala 对象的访问级别都是 public。
4063 0