我是斯卡拉的新手!
我的问题是,如果有包含成员的案例类
myItem:Option[String]
Run Code Online (Sandbox Code Playgroud)
当我构造类时,我需要将字符串内容包装在:
Option("some string")
Run Code Online (Sandbox Code Playgroud)
要么
Some("some string")
Run Code Online (Sandbox Code Playgroud)
有什么区别吗?
谢谢!
我有一些需要调用Java API的Scala代码
Java API接受可能为null的参数.我的Scala当然使用了Option.
举例来说,假设我有一个Java对象的构造Foo(Integer),其中Integer可能null.我想给Scala打电话bar: Option[Int].
我试过这个
import scala.collection.JavaConversions._
import scala.collection.JavaConverters._
val foo = Foo( bar.getOrElse(null) )
Run Code Online (Sandbox Code Playgroud)
但得到了这个编译错误
Error:(335, 44) type mismatch;
found : Any
required: Integer
bar.getOrElse(null),
Run Code Online (Sandbox Code Playgroud)
这样做的正确习惯是什么?