gpt4 book ai didi

android - 如何使用 Arrow 创建自己的数据类型

转载 作者:IT老高 更新时间:2023-10-28 13:43:03 34 4
gpt4 key购买 nike

使用箭头创建自己的数据类型的步骤是什么。

使用 Option 和提供的扩展构造函数(如 Some(data)None)很简单。但是,我如何创建自己的数据类型,它具有像 map()flatMap() 这样的功能运算符?

最佳答案

在 Arrow 中创建符合 Functor 等类型类并因此提供 map 等方法的数据类型的步骤如下所述:

  1. 启用更高种类的模拟。 https://arrow-kt.io/docs/patterns/glossary/#higher-kinds

  2. 实现类型类实例 https://arrow-kt.io/docs/patterns/glossary/#using-higher-kinds-with-typeclasses

在上面的两个链接中,有一个使用 ListK 包装标准库 List 的示例。文档示例未提及的是,为了扩展 Functor 将在 ListK 上添加的扩展,包括 Functor< 中定义的 maplift 接口(interface)它需要 kapt 和箭头元。

kapt    "io.arrow-kt:arrow-meta:$arrow_version"

Arrow 元负责为类型类实例扩展 Higher Kinds 和 Extensions。当前扩展的一个限制是,如果您计划在同一模块中同时使用 @higherkind@extension ,则由于 kapt 处理的顺序,它将无法工作.为此,您需要在一个模块中有数据类型,而在另一个模块中有扩展。这实际上是一种很好的做法,也是我们在 Arrow 中遵循的做法,因为它允许用户在不需要扩展时导入数据类型。

关于android - 如何使用 Arrow 创建自己的数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48914167/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com