Использование 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._ просто чтобы подтвердить, что у меня был правильный импорт.
1 ответ
ApplyOptionalOps
это класс case с исходным объектом в качестве параметра, поэтому, импортируя его сопутствующий объект, нельзя получить доступ к его функциям. Кто-то должен 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)