λ
Size: a a a
λ
AC
N
AC
N
AC
M
for yield
N
AC
N
N
s"""Moved ..."""конструирует строку, которую вы не записываете ни в какую переменную и никак не используете. Значит она "проваливается" дальше и становится значением if. Вы можете в этом месте написать
val str = if(...) {...} else {...}и потом использовать этот str в теле цикла (например напечатать) или дать строчке "провалиться" дальше. Однако, когда цикл написан как
for (...) {...}, он воспринимает своё тело как не имеющее значения и использующееся только для побочных эффектов (изменение каких-то полей, io и так далее). Вы можете изменить это поведение, поменяв выражение на
for (...) yield {...}. Тогда for будет возвращать значение типа ArraySeq[String]
N
AC
IF
bind[CacheLayer].to[PlayCacheLayer]
I
ΛВ
S
action.provideLayer(...)
- эффект, который сначала создает ресурсы, затем выполняет action, затем освобождает ресурсы.Runtime.unsafeFromLayer(layer)
- создает ресурсы и держит их до завершения jvm. Так что ресурсы освобождаются через Platform.addShutdownHook
( https://github.com/zio/zio/blob/a53fb07d9bb78629e9564b8da92a824b9e2f6d09/core/shared/src/main/scala/zio/Runtime.scala#L304 )I
ИШ
could not find implicit value for parameter compiler: fs2.Stream.Compiler[[x]Any,G]
} yield ()).compile.drain