AD
Size: a a a
AD
AD
MM
VR
.map
и .foreach
не обязательно делать последовательно, одно можно вкладывать в другое. Если вам нужно сравнить исходные данные с результатом вычислений, можно сделать как-то такoption.map {
case obj: Subclass =>
val result = doThing2(doThing1(obj))
assert(result == obj)
result
}
Но этот код плох по целому ряду причин, включая эксепшн, о котором говорит Апач. Что нужно сделать, если значение поменялось? Вернуть None или воспроизвести побочный эффект?VR
N
AD
N
MM
AS
val optionValue = Option(1234)
def maybeChangeValue1(in: Int) = in + 1
def maybeChangeValue2(in: Int) = identity(in)
val maybeUpdated = optionValue.map(maybeChangeValue1)
//val maybeUpdated = optionValue.map(maybeChangeValue2)
val isUpdated = optionValue != maybeUpdated
println(isUpdated)
AS
AS
isUpdated
после вычисленияOℕ
R
ΛВ
ΛВ
R
IA
R
S