2016-06-14 17 views
0

我想弄清楚如何使用applyOptional。我有這個:在Monocle中使用applyOptional

import monocle.function.all.index 
import monocle.macros.{GenLens, Lenses} 
import monocle.std.map._ 
import monocle.syntax.ApplyOptionalOps._ 
import monocle.function.Index._ 

val map: Map[Int, String] = Map.empty 
val lens = map applyOptional index(4) 

但編譯器告訴我「無法解析符號applyOptional。」我導入了ApplyOptionalOps._,以確認我擁有正確的導入。

回答

0

ApplyOptionalOps是源對象作爲參數的案例類,所以通過導入其伴侶對象無法訪問其功能。應該用import monocle.syntax.apply._代替ApplySyntax特徵,它包含從通用源對象到ApplyOptionalOps的隱式轉換以及其他一些操作包裝。事實上,只是這個例子以下的進口就足夠了:

import monocle.syntax.apply._ 
import monocle.function.Index._ 

val map: Map[Int, String] = Map.empty 
val lens = map applyOptional index(4) 
+0

我有一個類似[提問](https://stackoverflow.com/q/47786656/839733)關於'composeOptional'我」我沒有收到任何答覆。你介意看一下嗎? –