gpt4 book ai didi

haskell - Haskell 中的内部数据结构(文本)

转载 作者:行者123 更新时间:2023-12-05 09:23:06 24 4
gpt4 key购买 nike

因此,我正在使用 aeson 将一些 JSON 解析为自定义数据类型,但我似乎无法理解为什么 Haskell 需要在库中具有某些类型的两种表示形式。就我而言,这都与文本有关。

例如:

Couldn't match expected type `Data.ByteString.Internal.ByteString'
with actual type `B.ByteString'.

嗯,什么?这两个怎么不一样?为什么会有Data.ByteString.ByteStringData.ByteString.Internal.ByteString?我不明白为什么这两者是两种不同的类型以及为什么我需要在它们之间进行转换。

是否有介绍 ByteString 用法的指南?我知道如果您只处理 ASCII,它们比 String 更有效。

最佳答案

Data.ByteString.ByteString 只是 Data.ByteString.Internal.ByteString 的再导出,所以类型是相同的。然而,严格字节串和惰性字节串是不同的类型,因此我怀疑您遇到的问题是由 B.ByteString 实际上是 Data.ByteString.Lazy.ByteString 引起的。

如果这没有帮助,请提供更多上下文。

Bytestring确实是存储ASCII最高效的类型。这是 a tutorial on bytestring . String 对于大多数用例来说效率很低,Text是 unicode 的首选替代方案。

关于haskell - Haskell 中的内部数据结构(文本),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24223326/

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