String Haskell:将Int转换为字符串
我知道您可以使用String Haskell:将Int转换为字符串,string,haskell,int,casting,String,Haskell,Int,Casting,我知道您可以使用读取将字符串转换为数字: Prelude> read "3" :: Int 3 Prelude> read "3" :: Double 3.0 但是如何获取Int值的字符串表示?读取的反面是show Prelude> show 3 "3" Prelude> read $ show 3 :: Int 3 一个基于Chuck答案的示例: myIntToStr :: Int -> String myIntToStr x | x < 3
读取将字符串
转换为数字:
Prelude> read "3" :: Int
3
Prelude> read "3" :: Double
3.0
但是如何获取Int
值的字符串
表示?读取的反面是show
Prelude> show 3
"3"
Prelude> read $ show 3 :: Int
3
一个基于Chuck答案的示例:
myIntToStr :: Int -> String
myIntToStr x
| x < 3 = show x ++ " is less than three"
| otherwise = "normal"
myIntToStr::Int->String
Myintostr x
|x<3=显示x++“小于三”
|否则=“正常”
请注意,如果没有显示,第三行将无法编译。任何刚开始使用Haskell并试图打印Int的人,请使用:
module Lib
( someFunc
) where
someFunc :: IO ()
x = 123
someFunc = putStrLn (show x)
@莱加:你可能会发现这个链接很有用:@KennyTM很多人会发现这个链接很有用!一个链接本身就是+1,但是为了展示如何使用它。。。这是+10,谢谢:)请注意,一些组织/标准强烈反对使用“show”,因为它具有极端的多态性。一个特定于类型的函数(或者,最坏的情况是,包装显示)会有帮助。@JonWatte“可能”,而不是“会”。就这个问题的一般性而言,我认为你的建议是不可行的。有没有一种方法可以在不使用YNG系统功能的情况下手动执行?Haskell更惯用的方法是putStrLn$show x
(使用右关联运算符$)@Arlind:作为一个试图学习Haskell的人,我非常感谢这样的答案。我现在不想成为哈斯克尔专家。我只是想让简单的函数工作,并将结果显示给控制台。以后我就能知道什么是“惯用语”,什么不是“惯用语”。感谢您帮助初学者:-)