问题标签 [zio]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
scala - 在 ZIO 中,有没有办法将 IO[Nothing, T] 转换为 T,如果没有,为什么不呢?
在考虑错误并转换IO[E, T]
为 an之后,IO[Nothing, T]
我们可以直接将值称为 typeT
而不是IO[Nothing, T]
. 这允许我们返回一个类型的值,T
而无需使用var
and IO.map
。有没有办法做到这一点,如果没有,为什么不呢?
在 ZIO 的当前 README 中没有找到解决方案。
scala - 如何让 Scalaz ZIO 变得懒惰?
我有一个很重的副作用函数(想想数据库调用),我想将它用作一个惰性值,以便它仅在第一次使用时被调用(如果从未使用过则根本不会调用)。
我如何用 ZIO 做到这一点?
如果我的程序看起来像这样,则该函数只被调用一次(但甚至根本不使用结果):
我想我必须传递一个IO
产生的Int
而不是已经物化的Int
,但是如果我传入只调用数据库的原始IO
文件,它将被重复调用:
有没有办法将它“包装”longRunningDbAction
成让它变得懒惰的东西?
scala - Scalajs 和 Scala ZIO
scala.js 可以与 scala ZIO 一起使用吗?我希望将 scala ZIO 与 scala.js 一起使用 我只知道如何在普通应用程序中使用 scala ZIO 有人知道如何将它与 scala.js 一起使用吗?
scala - scalaz ZIO中IO和UIO的区别
UIO[Long]
例如,ZIO 的新版本中的 IO 和 UIO 有什么区别IO[Nothing, Long]
?
scala - 如何在 ZIO 中优雅地组合多个包含选项的任务
我正在寻找最优雅的实现
使用
- 没有额外的依赖
scalaz-zio-interop-cats
和cats
scalaz-zio-interop-scalaz7x
和scalaz7x
解决方案应该很好地推广到 n 个参数。
scala - Zio 运行阻止向后兼容的代码
(希望)关于 Scalaz Zio 的简单问题。
我有一些旧代码重构为 Zio。我希望该代码的一条路径保持原样运行:
- 同步
- 阻塞
- 在当前线程上(这是一个硬性要求)
我怎样才能运行IO
它以使其表现得像旧的阻塞代码?
我目前使用:
它似乎可以解决问题,但我不确定这是正确的。这是否与旧代码 100% 向后兼容?
scala - 使用代数验证和捕获错误
我在媒体上看到了这篇文章:https ://medium.com/@odomontois/tagless-unions-in-scala-2-12-55ab0100c2ff 。有一段代码我很难理解。文章的完整源代码可以在这里找到:https ://github.com/Odomontois/zio-tagless-err 。
代码是这样的:
以下是我的问题:
- 鉴于类型是在对象中声明的,scala 编译器如何解决/处理任意类型?它似乎取决于 apply 方法参数类型,但是这与 Capture 是一个对象并且您可以有多个不同类型的 apply 调用这一事实有何关系?我遇到了这篇文章,对象中没有定义的类型声明是什么意思?但我仍然不清楚。
- 根据文章,上面的代码使用了另一个库https://github.com/alexknvl的技巧。您能否解释一下这种模式背后的想法是什么?它是干什么用的?我了解作者使用它是为了捕获登录过程中可能发生的多种类型的错误。
谢谢!
更新:
第一个问题:
根据规范,当上限缺失时,假定为 Any。因此,Arbitrary 被视为 Any,但是,它似乎与 Any 不可互换。
这编译:
但是,这不会:
另请参阅此 scala益智游戏。
scala - 在 http4s 中发送 JSON 响应的正确方法是什么?
不久前,我从 akka-http 切换到 http4s。我想做正确的基本事情之一——JSON 处理,特别是发送 JSON 响应。
我决定使用带有 ZIO 的 http4s 而不是猫,所以下面是 http 路由的样子:
如您所见,JSON 序列化部分非常冗长:
有没有其他方法可以在响应中发送 JSON?
scala - 理解 Scala FP 库
只是为了让那些想要开始使用 Scala FP 库的人快速清晰地了解如何在纯 FP 方面变得更好。
有人会澄清 Cats 和 Cats-Effect、Cats-Effects IO 之间的区别/关系吗?最重要的是,Zio 和 Monix 对此有何立场?最后,与 ScalaZ 7/8 有什么关系?
到目前为止,根据我所阅读的内容,基于可用文档的库的良好组合以及它们所做的将是 Cats,然后是 Cats-Effect 和可与 Cats-effects 一起使用的 ZIO?但我不太明白为什么,我想为自己设定一条好道路,让自己在保持生产力的同时学习成为更好的 FP 程序员,并且在开始做出选择之前不必完成“Scala 中的 FP 编程”。
scalaz - IO Monad 与 Reader Monad
我想知道 IO Monad 和 Reader monad 之间有什么关系吗?
Reader monad 中的 Environment 可以产生影响吗?如果是这样,ZIO 或 Cats IO,scalaz-effects 如何处理 Reader Monad 原则?