"?" を含む scala コードに遭遇しました。しかし、scalaでそれが何を意味するのかわかりません。誰か私に説明してもらえますか? ありがとう。
そして、ここに1つの例があります
def getJobId(conf: Configuration): String =
?(conf.get("scoobi.jobid")).getOrElse(sys.error("Scoobi job id not set."))
私にとっては、Option の apply メソッドのように見えます。コードのどこかに次のインポート ステートメントがありますか。
import Option.{apply => ?}
これは、applyが?としてインポートされることを意味します。. Option.apply のドキュメントから:
引数が null でない場合は Some(x) を作成し、null の
場合は None を作成する Option ファクトリ。
ステートメント全体は、次のことを意味します。
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
UPD: Scala 、Scala メソッド、および値の名前で有効な識別子文字を参照してください
UPD2:例では「?」関数、メソッド、this
またはメソッドを持つオブジェクトのいずれかapply
です。おそらく返されますOption[String]
。