我用"?"遇到一些scala代码 但是不知道斯卡拉是什么意思,任何人都可以向我解释一下吗?谢谢.
这是一个例子
def getJobId(conf: Configuration): String =
?(conf.get("scoobi.jobid")).getOrElse(sys.error("Scoobi job id not set."))
Run Code Online (Sandbox Code Playgroud)
Chr*_*ian 29
对我来说,它看起来像Option的apply方法.代码中是否存在以下import语句:
import Option.{apply => ?}
Run Code Online (Sandbox Code Playgroud)
这意味着申请被导入为?.来自Option.apply的文档:
Option参数工厂,如果参数不为null,则创建Some(x);如果为null,则创建
None.
整个陈述意味着:
如果conf.get("scoobi.jobid")不等于null,则赋值此字符串,否则分配字符串sys.error("Scoobi job id not set.")返回
它只是一个合法的角色,就像"abcd ......"
scala> def ?(i: Int) = i > 2
$qmark: (i: Int)Boolean
scala> val a_? = ?(3)
a_?: Boolean = true
Run Code Online (Sandbox Code Playgroud)
UPD:请参阅Scala中的有效标识符字符,Scala方法和值名称
UPD2:在示例中"?" 可能是方法的功能,方法this或只是一些对象apply.它可能会回来Option[String].
| 归档时间: |
|
| 查看次数: |
12042 次 |
| 最近记录: |