Scala 返回选项值
Scala returning option value
问题是我希望此函数为 return 选项值(以 Option[None] 的形式)或 Option[something],但它仅 return是一个单位。我错过了什么?
def intersection(another: Interval){
var test: Option[Interval] = None
if (this.isLaterThan(another) || another.isLaterThan(this)){
test
}
else {
val a = this.start.later(another.start)
val b = this.end.earlier(another.end)
test=Some(new Interval(a, b))
test
}
你应该指定它的类型return
def intersection(another: Interval): Option[Interval] = {
if (this.isLaterThan(another) || another.isLaterThan(this)){
None
}
else {
val a = this.start.later(another.start)
val b = this.end.earlier(another.end)
Some(new Interval(a, b))
}
}
尽量不要在 scala 中使用 var 我稍微更改一下代码
在第一个 {
之前,您还缺少 =
。没有 =
定义的方法总是 return Unit
。请注意,此语法实际上已被弃用,因为这是一个常见错误:https://issues.scala-lang.org/browse/SI-7605。
问题是我希望此函数为 return 选项值(以 Option[None] 的形式)或 Option[something],但它仅 return是一个单位。我错过了什么?
def intersection(another: Interval){
var test: Option[Interval] = None
if (this.isLaterThan(another) || another.isLaterThan(this)){
test
}
else {
val a = this.start.later(another.start)
val b = this.end.earlier(another.end)
test=Some(new Interval(a, b))
test
}
你应该指定它的类型return
def intersection(another: Interval): Option[Interval] = {
if (this.isLaterThan(another) || another.isLaterThan(this)){
None
}
else {
val a = this.start.later(another.start)
val b = this.end.earlier(another.end)
Some(new Interval(a, b))
}
}
尽量不要在 scala 中使用 var 我稍微更改一下代码
在第一个 {
之前,您还缺少 =
。没有 =
定义的方法总是 return Unit
。请注意,此语法实际上已被弃用,因为这是一个常见错误:https://issues.scala-lang.org/browse/SI-7605。