【发布时间】:2021-09-24 05:03:16
【问题描述】:
我有一个简单的理解代码:
def nameFormatter(request: SomeRequest) : FormattedData = {
for {
config <- ZIO.fromOption(configuration.get(request.name)).orElseFail( new Exception("Unknown config"))
name = config.data.name.pipe(SomeName)
} yield FormattedData(
name,
request.age
)
}
但是这个方法返回:
ZIO[Any, Exception, FormattedData]
我想将此方法更改为仅返回 FormattedData,而不是整个 ZIO。可能吗?或者我应该以某种方式读取返回的类型并从中获取值?
【问题讨论】:
-
请问,为什么要返回一个纯值?与第三方服务集成?你为什么要使用 ZIO,因为它来自第三方库?你了解
IO数据类型的用途吗? -
我要纯值,因为这里不需要效果
-
那么为什么还要使用 ZIO 呢?为什么不直接
configuration.get(request.name).map(config => FormattedData(name = config.data.name.pipe(SomeName), age = request.age)并返回Option[FormattedData]?