haskell - 是否有用于运行时字段访问的基于字符串的镜头?
问题描述
类似于这个问题,但更多的是运行时间。
有没有办法自动生成镜头或任何其他机制,以便在运行时按名称访问字段?
我正在寻找类似于field
fromgeneric-lens
的东西,除了将字段名称作为运行时参数而不是类型级别参数(并返回 a Maybe
)。
我自己写这个很舒服,但我认为它可能已经存在。
例子
data Foo = Foo { bar :: Bar }
data Bar = ...
Deriving Generic
,您可以generic-lens
用来获得方便的field @"bar"
镜头 - 但是有没有办法自动生成/导出fieldAtRuntime "bar"
行为相同(或相似)的方式?
动机
我想使用 JSON 路径导航一些自定义数据结构。JSON 可能与记录字段不完全匹配对我来说并不重要,但我确实希望不必序列化、遍历和反序列化。
解决方案
推荐阅读
- ignite - 在 Apache Ignite 上使用 @QuerySqlField 映射同一类的不同字段
- firebase - Firestore 规则 - 数据类型验证
- java - 在 JADE 中创建代理
- python - 如何解决 ValueError:无法使用 Jupyter notebook 在 python 中为 Tensor 'Placeholder_1:0' 提供形状(230,)的值,该形状在 python 中具有形状 '(?, 4)
- regex - 如何过滤 Google 表格中的数据并包含仅匹配所有条件的结果?
- bash - Plink - 与 bash 脚本的远程交互连接似乎无法正常工作
- sql - 如何在处理 NULL 值时将第 n 列移动到 SQL 表中的第一列?
- java - 依赖于 JavaFX 由 Maven 构建可执行的 .jar
- flutter - 如何在 Flutter/Android Studio 中编辑运行配置?
- date - 使用 Google 脚本在 Google 表格上搜索/匹配日期,并将源范围复制到目标范围 OFFSET 从该日期开始