gpt4 book ai didi

string - 将字符串转换为数字并打印到命令行

转载 作者:行者123 更新时间:2023-12-01 12:31:39 29 4
gpt4 key购买 nike

我正在完成 Scheme in 48 hours 的第 1 章练习.对于问题 2,我想使用 read 函数将字符串转换为数字,但下面的代码不起作用。

main = do
args <- getArgs
myNum <- read $ args !! 0
putStrLn myNum

这是来自 ghc 的错误信息:

ex2.hs:7:12:
No instance for (Read (IO t0)) arising from a use of ‘read’
In the expression: read
In a stmt of a 'do' block: one <- read $ (args !! 0)
In the expression:
do { args <- getArgs;
myNum <- read $ (args !! 0);
putStrLn myNum }

最佳答案

这里有一些错误。

首先,要在此函数中保存变量,您需要使用 let variable = "something"语句类型而不是 <-绑定(bind)运算符。在这里,let myNum = read (args !! 0)它采用第一个命令行参数。

接下来,我们使用 read转换 myNum任何类型,但我们还需要显式定义类型(我在本例中选择了 Float)以将输出打印回命令行。否则,您会收到类似 "Prelude.read: no parse" 的错误消息

将字符串从数字转换回字符串的代码如下所示...

main = do
-- get command line arguments
args <- getArgs

-- get the first indexed element; convert it from string to float
let myNum = read (args !! 0) :: Float

-- print this number to the command line (as a string)
putStrLn (show myNum)

关于string - 将字符串转换为数字并打印到命令行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33750267/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com