如何在scala中返回None?

Mr.*_*obo 1 scala

我最近一直在学习Scala,我最常见的一件事是谈论你不应该使用null而是使用None.我不得不求助于使用null,因为我不明白None是如何工作的.

我最大的问题是当我有返回对象的方法时说:

def func: SomeObjType = {
if(something)
    new SomeObjType
else
    null or None
Run Code Online (Sandbox Code Playgroud)

如果我返回null,它的效果非常好但是每当我尝试返回None时它都不起作用.

我究竟做错了什么?

Mar*_*rth 8

def func : Option[SomeObjType] = {
  if (cond)
    Some(new SomeObjType)
  else 
    None
}
Run Code Online (Sandbox Code Playgroud)

  • @JesusAdoboLuzon选项的整点是返回不同类型的,这样主叫方****知道有缺失值的一定的风险,而且它不能执行的结果直接**不安全操作.如果您不需要此并且使用某些签名限制,请使用普通旧null. (10认同)
  • 猜猜我的问题是试图用Java方式做到这一点.谢谢你的回复!:d (5认同)