ホラーを含むthis oneのような質問から出てくる答えを見ると、NPEを捕まえようとしているように見えて、スタックトレースからマージされた名前を捨てるようになるので、私はこれに答えることができます。適切なヌル安全な結合演算子をスカラーに書く方法は?
コメントや改善を歓迎します。そのよう
ホラーを含むthis oneのような質問から出てくる答えを見ると、NPEを捕まえようとしているように見えて、スタックトレースからマージされた名前を捨てるようになるので、私はこれに答えることができます。適切なヌル安全な結合演算子をスカラーに書く方法は?
コメントや改善を歓迎します。そのよう
:
case class ?:[T](x: T) {
def apply(): T = x
def apply[U >: Null](f: T => U): ?:[U] =
if (x == null) ?:[U](null)
else ?:[U](f(x))
}
とアクションで:あなたは新しいものを作成するのではなく、その質問に答えているはず
scala> val x = ?:("hel")(_ + "lo ")(_ * 2)(_ + "world")()
x: java.lang.String = hello hello world
scala> val x = ?:("hel")(_ + "lo ")(_ => (null: String))(_ + "world")()
x: java.lang.String = null
。または、おそらく、に加えて。 –
もしそうなら。私が約24時間以上の質問に答えると、その答えは、その相対的なメリットにかかわらず、あいまいになってしまいます(そして私はスカラの質問に答えるだけで、私は自分の答えの価値について考えています)。 – extempore
例外を含む解決策を見て恐怖。あなたのアプリケーションを何桁も遅くしたいのでない限り。 – smartnut007