在Monocle中使用applyOptional

时间:2016-06-14 00:15:31

标签: monocle-scala

我试图找出如何使用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._只是为了确认我有正确的导入。

1 个答案:

答案 0 :(得分: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)