我知道你可以用read将字符串转换为数字:

Prelude> read "3" :: Int
3
Prelude> read "3" :: Double 
3.0

但是如何获取Int值的String表示呢?


read的反义词是show。

Prelude> show 3
"3"

Prelude> read $ show 3 :: Int
3

下面是查克回答的一个例子:

myIntToStr :: Int -> String
myIntToStr x
    | x < 3     = show x ++ " is less than three"
    | otherwise = "normal"

注意,如果没有show,第三行将无法编译。


人只是从Haskell并试图打印Int,使用:

module Lib
    ( someFunc
    ) where

someFunc :: IO ()
x = 123
someFunc = putStrLn (show x)

你可以用show:

show 3

我想补充的是show的类型签名如下:

show :: a -> String

可以将很多值转换为字符串,而不仅仅是Int类型。

例如:

show [1,2,3] 

这里有一个参考:

https://hackage.haskell.org/package/base-4.14.1.0/docs/GHC-Show.html#v:show