Haskell字符串转换为整数类型

31

我正在学习Haskell的基础,想将字符串转换为整数,但一直无法实现。我已经查看了类似的问题,但仍然不确定应该如何操作。

我只是想将例如'6'"271"这样的字符串转换为整数,即分别得到6271。请问该怎么做?

在Python中,对于这个问题,我可以很容易地使用 int("2723") 来解决。


4
你想查找 read 的含义。 - DiegoNolan
3
如果你在谷歌上搜索“haskell字符串转整数”,第一个结果是一个stackoverflow的帖子,解释了如何使用read函数。 - bheklilr
1个回答

50

如果你知道这个字符串是一个有效的整数,或者你不介意它在这种情况下发生错误,read 可以使用。如果你对Haskell的类型类不熟悉,只需知道你可能需要告诉Haskell你想读取的类型:

main :: IO ()
main = do
  let x = read "271" :: Integer
  print x

如果Haskell有其他方式知道你想要的类型,例如您继续对它进行算术运算,您并不一定非要这样做。

如果您不能确定字符串是有效数字,则base的最近版本(不确定自何时)包括一个函数readMaybe,如果不是可读整数,它会安全地返回Nothing


谢谢,虽然我的问题是重复的,答案已经给出了。你能给我提供一个将整数转换为字符串的资源吗? - Newb
@Newb 如果你想要这个,你需要使用show - Onyxite
2
@Newb,“read”的相反操作是“show”。大多数教程都会在早期介绍这些函数,你目前看了哪些呢?最好先通过一些教程来逐步学习,而不是直接尝试深入研究。 - bheklilr

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接