Option(Option(Some))
をフラット化しようとしていますが、コードをコンパイルしようとするとエラーが発生します。Option(Option(Some))を実行しようとするとエラーが発生する
val foo = request.options.get(myKey).flatten
if(foo.get == bar) {...}
request.option.get(Key)
戻りOption[Any]
次のよう
コードです。この場合、myKey
に関連付けられた値はOption
なので、このコードをデバッグするときに見たOption(Option(Some))
を返すように、request.options.get(myKey)
を返す必要があります。
はしかし、私は次のエラーを受け取る:
Error: Cannot prove that Any <:< Option[B].
Error: not enough arguments for method flatten: (implicit ev: <: <[Any,Option[B]])Option[B]
Unspecified value parameter ev.
私の知る限り、このケースで動作するはず平ら。
問題は、マップされた値がオプションであることでした。私が結果にマッチを使うかどうかは、私が必要とする行動を得ることができるかどうかを見る。例:val bar = foo match { caseなし=> //キーが存在しない case(None)=> //マップに存在するが、Noneにマップされたキー case Some(value)=> //マップの値 } – knueser
何が起きているのかを理解するために、私は 'request.options'と' myKey'の型を知る必要があります。 –