Haskell:将 Int 转换为 String

发布于 2024-08-31 18:43:08 字数 205 浏览 5 评论 0原文

我知道您可以使用 readString 转换为数字:

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

但是如何获取 IntString 表示形式代码>值?

I know you can convert a String to an number with read:

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

But how do you grab the String representation of an Int value?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

一袭白衣梦中忆 2024-09-07 18:43:08

read相反的是show

Prelude> show 3
"3"

Prelude> read $ show 3 :: Int
3

The opposite of read is show.

Prelude> show 3
"3"

Prelude> read $ show 3 :: Int
3
纸伞微斜 2024-09-07 18:43:08

任何刚刚开始使用 Haskell 并尝试打印 Int 的人,请使用:

module Lib
    ( someFunc
    ) where

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

Anyone who is just starting with Haskell and trying to print an Int, use:

module Lib
    ( someFunc
    ) where

someFunc :: IO ()
x = 123
someFunc = putStrLn (show x)
亽野灬性zι浪 2024-09-07 18:43:08

基于 Chuck 答案的示例:

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

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

An example based on Chuck's answer:

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

Note that without the show the third line will not compile.

甩你一脸翔 2024-09-07 18:43:08

你可以使用 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

You can use show:

show 3

What I want to add is that the type signature of show is the following:

show :: a -> String

And can turn lots of values into string not only type Int.

For example:

show [1,2,3] 

Here is a reference:

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文