虽然 Haskell 社区的普遍观点似乎是,使用 Text
总是比使用 String
好,但是大多数维护库的 API 仍然是面向 String
的,这一事实让我十分困惑。另一方面,还有 值得注意的项目,它认为 String
完全是一个错误,并提供一个 Prelude
,其中所有面向 String
的函数实例都被它们的 Text
对应实例所替代。
那么,除了向后和标准的序曲兼容性和“开关制造惯性”之外,人们还有什么理由继续编写面向 String
的 API 呢?
与 String
相比,Text
还有什么其他的缺点吗?
我对此特别感兴趣,因为我正在设计一个库,并试图决定使用哪种类型来表达错误消息。