Haskell字符串 - > Int类型转换

New*_*ewb 16 haskell

我正在Haskell中执行我的前几步,我正在尝试将字符串转换为整数,但我没有管理.我看过类似的问题,但我还是不确定.

所有我想要做的是转换,如'6'"271"为整数,即,6或者271分别.我该怎么做呢?

类比将是在Python中,我可以轻松地做到这一点:例如int("2723"),可以完成工作.

Ony*_*ite 21

如果你知道字符串是一个有效的整数,或者如果不是这样,你不介意它会爆炸,那么read就行了.如果您不熟悉Haskell的类型类,只需知道您可能必须告诉Haskell您想要读取的类型为:

main :: IO ()
main = do
  let x = read "271" :: Integer
  print x
Run Code Online (Sandbox Code Playgroud)

你并不总是必须这样做,如果Haskell有其他方式知道你想要什么类型,比如你继续用它算术.

如果您不确定该字符串是否为有效数字,则最近版本的base(不确定从何时开始)包含一个函数readMaybe,Nothing如果它不是可读整数,它将安全返回.

  • @Newb 与“read”相反的是“show”。大多数教程很早就涵盖了这些功能,到目前为止您都了解了什么?在尝试直接投入之前,最好先完成一些工作。 (2认同)