gpt4 book ai didi

string - 如何使用 `reads` 将字符串转换为元组?

转载 作者:行者123 更新时间:2023-12-02 12:13:33 25 4
gpt4 key购买 nike

在 GHCi 中,我尝试将字符串读取为元组。

>reads "(1,2)" :: [(Integer),(Integer)]

输出错误:

Couldn't match type [Char] with Integer
expected type: [(Integer,Integer)]
actual type: [(Integer,String)]

我在网上找到的并且有效的示例是:

>reads "(34, True),abc" :: [((Integer,Bool),String)]
[((34,True),",abc")]

那么为什么我尝试创建的那个不起作用呢?

最佳答案

您必须考虑读取总是产生的尾随String

> reads "(1,2)" :: [((Integer,Integer),String)]
[((1,2),"")]

如果您只需要一对并且绝对确定字符串解析正确,请改用 read

> read "(1,2)" :: (Integer,Integer)
(1,2)

请注意,read(与reads不同)会使程序因无效字符串而崩溃。如果您无法假设字符串正确解析,但您仍然需要一对,请使用 readMaybe而是形成 Text.Read.

关于string - 如何使用 `reads` 将字符串转换为元组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55149045/

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