相关疑难解决方法(0)

何时使用Option

我学习Scala已有一段时间了,无法清楚地了解Option的用法.当我链接函数时,它可以帮助我避免空值检查(根据文档).这对我来说很清楚:)

接下来我看到Option可以作为开发人员的一种指示器,这里可以使用null值,并且必须对其进行处理.这是真的吗?如果是,我应该使用选项吗?例如

class Racer {
    val car = new Car()
}
Run Code Online (Sandbox Code Playgroud)

我有Racer类,我确定car field不能为null(因为它是常量并在创建Racer实例时得到一个值).这里不需要选项.

class Racer {
    var car = new Car()
}
Run Code Online (Sandbox Code Playgroud)

在这里,我这样做,以便汽车可以改变.并且有人可以为汽车分配零.我应该在这里使用Option吗?如果是,我注意到我所有的班级字段都是Option的候选者.我的代码看起来像这样

class Racer {
    var car: Option[Car] = None
    var currentRace: Option[Race] = None
    var team: Option[Team] = None
    ...
}
Run Code Online (Sandbox Code Playgroud)

它看起来不错吗?对我来说,似乎有点过度使用.

def foo(): Result = {
    if( something )
        new Result()
    else
        null
}
Run Code Online (Sandbox Code Playgroud)

我有一个可以返回null的方法.我应该返回Option吗?如果方法可以返回null,我是否应该总是这样做?

任何有关它的想法都会有所帮助.提前致谢!

我的问题类似于为什么选项,但我认为它不一样.它更多的是关于何时,而不是为什么.:)

scala

26
推荐指数
4
解决办法
1万
查看次数

标签 统计

scala ×1