首页  

scala Option 小结     所属分类 scala 浏览量 656
Option Some None  避免使用null

Option 通常作为Scala集合类型 List Map 等操作的返回值  

两个子类  Some和None

Option[T]  是一个容器,就像数组 或 List
没有或一个元素
使用 for 或 match 


Option 的常用方法
get        返回容器里的值  , None 调用 get 抛异常 java.util.NoSuchElementException
isEmpty    没有值返回true,否则返回false
getOrElse  没有值则返回默认值
foreach    有值则执行     否则忽略
map        有值则执行转换  否则忽略

  

var map = Map("a" -> 1, "b"-> 2)
scala.collection.immutable.Map[String,Int] = Map(a -> 1, b -> 2)
map.get("b")
Option[Int] = Some(2)
map.get("c")
Option[Int] = None

map.get("c").get
java.util.NoSuchElementException: None.get

map.get("c").getOrElse(null)
Any = null

Option(null).orNull
Null = null


Option("hello").map(_.length).map("length: " + _).foreach(println)
Option("hello").map("length: " + _.length).foreach(println)


val x : Option[String] = Option(null)
x.map(_.length).map("length: " + _).foreach(println)

val x : Option[String] = None
x.map(_.length).map("length: " + _).foreach(println)

def printLength(s:Option[String]){
  for(item <- s){
    println(item.length)
  }
}

printLength(None)
printLength(Option("abc"))
printLength(Option(null))


def show(x: Option[String]) = x match {
  case Some(s) => s
  case None => "?"
}



scala Option(null) 和 Some(null) 的区别 scala Option Some None

上一篇     下一篇
java 数据库访问 持久层 框架

时序数据库技术点

scala Option(null) 和 Some(null) 的区别

jdbc获取自增主键ID

pf4j简介及例子运行说明

pf4j 例子应用 类加载机制验证