Scala 齐奥,从效果上提供环境

Scala 齐奥,从效果上提供环境,scala,zio,Scala,Zio,从ZIO开始,我试图将现有的应用程序转换为纯功能的应用程序。此应用程序依赖于Http和Frp客户端。它们都是通过配置文件和可选的命令行参数配置的 当前流解析参数,然后读取配置文件并合并两者。生成的配置被传递给一些需要Http和Ftp客户端的组件 现在,如果我想将其转换为ZIO,我可以天真地创建这样的流: val flow = for { options <- ZIO.succeed("Options") configs <- ZIO.succeed(s"Config + $o

从ZIO开始,我试图将现有的应用程序转换为纯功能的应用程序。此应用程序依赖于Http和Frp客户端。它们都是通过配置文件和可选的命令行参数配置的

当前流解析参数,然后读取配置文件并合并两者。生成的
配置
被传递给一些需要Http和Ftp客户端的组件

现在,如果我想将其转换为ZIO,我可以天真地创建这样的流:

val flow = for {
  options <- ZIO.succeed("Options")
  configs <- ZIO.succeed(s"Config + $options")
  result  <- ZIO.succeed("...") // This require the "configs"
} yield ()
val flow=for{
选项您可以执行
。提供(配置)
,为什么不呢

一般来说,您可以执行
io1.flatMap(io2.provide)
来运行effect
io1
,然后将结果提供给另一个effect
io2
。甚至还有一个快捷方式:
io1>>io2