`
criss
  • 浏览: 24258 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

scala的Option类型

阅读更多

编译的错误总比运行时错误好。因为你能够马上处理他,而不是要等到代码运行的时候。

有的时候你获取不到结果,例如你搜索一个列表没有值,访问一个Map有没有相应的Key,在JAVA中你将收到一个NULL,如果你没有处理这个Null,将会抛出NullException。在Scala中,你可以用Option,这样你可以以一种比较优雅的方式避免NullException.

Option是一种参数类型,例如Option[String] 或者 Option[File]

Option有两种值Some(...)或者None

var s = Some("abc")          
var t: Option[String] = None 
def chooseFile(): Option[File] = { ... }
//比较啰嗦的方式
chooseFile() match {
      case Some(f) => 
      case None =>   
}
//比较土的方式
if (t isDefined) println(t)
if (t isEmpty) println("Nothing here!")
//比较简单的方式
val w = t.getOrElse("Nothing here!") 

 

 

分享到:
评论

相关推荐

    Scala考试题1

    - `None` 是 Option 类型的一个实例,代表没有值。 - `Nothing` 是所有类型的子类型,表示没有结果。 8. **Unit 类型**: - 类似于 Java 的 void,表示无返回值的函数。 9. **Option 类型及使用场景**: - ...

    学习scala好的项目

    此外,`Option`类型是Scala处理null安全的一种方式,它强制程序员明确处理空值情况,避免了常见的NullPointerException。 接着,我们来看Scala与Spark的结合。Spark是Apache基金会的一个开源项目,它提供了基于内存...

    最好的scala学习 课件

    此外,还会涉及Option和Either等类型,它们是处理可能的null值和错误的良好工具。 接着,"Scala进阶之路-part03-面向对象.pdf"会介绍Scala的面向对象编程特性。Scala支持类、对象、继承、封装和多态,同时引入了...

    Programming In Scala 中文版及英文版

    9. **Option类型**:Option是Scala处理null安全的一种方式,它要么是Some[T],要么是None,避免了空指针异常。 10. **隐式转换**:Scala的隐式转换可以在适当的时候自动将一个类型转换为另一个类型,简化了代码,但...

    scala-2.12.8 源码包

    1. **类型系统**:Scala的类型系统是其强大特性的基石,包括静态类型、类型推断、泛型、类型类和模式匹配。在源码中,你可以看到如何实现这些功能,以及它们如何与Java虚拟机(JVM)交互。 2. **Actor模型**:Scala...

    Scala编程实战基础教程

    例如,Scala中的Option类型可以用来处理可能的null值,避免空指针异常,这是很多其他语言中常见的问题。 函数式编程是Scala的一个核心特色。在Scala中,函数是第一等公民,可以作为参数传递,也可以作为返回值。...

    Scala 基础.zip

    8. **Option类型**:Option是Scala处理null安全的一种方式,它将可能的null值封装在一个容器中,避免了空指针异常。 9. **隐式转换**:Scala的隐式转换可以将一个类型自动转换为另一个类型,但需谨慎使用,以防止...

    scala源码-2.11.x.zip

    2. 标准库:在`scala-2.11.x/src/library`目录下,包含了Scala的标准库,提供了大量的内置类和模块,如Option、List、Map、Set等集合类,以及函数式编程的关键工具,如Monad、Functor等抽象。此外,还有并发支持、I/...

    beginners-guide-to-scala

    Option类型用于表示可能不存在的值,它有两个子类型:Some和None。Try类型用于捕获和处理代码块中可能发生的异常,它有两种子类型:Success和Failure。Either类型用于处理两种可能的结果,它是一个包含两个类型参数...

    scala-docs-2.11.8.rar

    4. **Option类型**:Scala的Option类型用于处理可能的空值,避免了常见的NullPointerException。 5. **Future**:在并发编程中,Future表示一个异步计算的结果,提供了非阻塞的等待和结果处理方式。 6. **Implicits*...

    Scala 讲座.rar

    此外,可能会涉及Scala的Option和Either等类型,它们是处理可能的空值或异常的优雅方式。 “Scala讲座:如何变成函数脑(7).pdf”暗示了函数式编程的思想。Scala的函数是一等公民,可以作为参数传递,也可以作为...

    atomic-scala-examples

    1. **基础语法**:如变量声明、数据类型(包括基本类型、集合、Option、Either等)、控制流(条件语句、循环)、函数定义和调用。 2. **类与对象**:Scala中的类、对象和模块,以及特质(trait)的概念,它们在实现...

    scala 案例

    它还支持`Option`类型来处理可能的null值,减少空指针异常。 5. **模式匹配**:Scala的模式匹配允许解构复杂数据结构,如`case`语句用于匹配不同情况,常用于解析数据或实现算法。 6. **Actor模型**:Akka框架是...

    Scala程序设计(第2版)

    7.4.2 Either:Option类型的逻辑扩展 200 7.4.3 Try类型 205 7.4.4 Scalaz提供的Validation类 206 7.5 本章回顾与下一章提要 209 第8章 Scala面向对象编程 210 8.1 类与对象初步 211 8.2 引用与...

    Scala函数式编程

    2 scala很多库在设计的时候,不理解原因,包括Option,Collection的很多看似有冗余的地方 3 很多scala的默认写法,不理解 4 多态的具体化,尤其是协变的意义所在 5 各种重载的符号使用 之前读过 programming in...

    scala版DVD管理系统

    11. **Option类型**:在处理可能为空的值时,Scala的`Option`类型能有效防止空指针异常,提供了一种安全处理null的方法。 12. **命令模式**:系统可能使用命令模式设计,将请求封装为一个对象(如`AddDvdCommand`、...

    快学Scala-[中文]

    9. **Option 类型**:Option 是 Scala 为避免空指针异常而引入的容器类,它可以包含 Some 值或 None,从而强制开发者显式处理可能的缺失值。 10. **Type Classes**:虽然 Scala 不直接支持类型类,但可以通过隐式...

    Scala编程语言详解(从入门到精通)spark

    - **Option 类型**:Scala 使用 `Option` 类型来处理可能为空的情况,避免了空指针异常的问题。 #### 五、控制结构与函数 - **`if-else` 表达式**:Scala 中的 `if-else` 表达式可以返回值。 - **`while` 表达式**...

Global site tag (gtag.js) - Google Analytics