将 entryGetText 转换为 Int gtk2hs
Convert a entryGetText into Int gtk2hs
我正在尝试将 entryText 转换为字符串,以便将其用于其他功能。
`unsafePerformIO (entryGetText txtMagn)`
在尝试编译此代码时,我收到错误消息:
`Couldn't match type ‘IO a0 -> a0’ with ‘[Char]’
Expected type: String
Actual type: IO a0 -> a0
Probable cause: ‘unsafePerformIO’ is applied to too few arguments
In the first argument of ‘putStrLn’, namely ‘unsafePerformIO’`
提前致谢
这是因为你写了
putStrLn unsafePerformIO (entryGetText txtMagn)
此处将unsafePerformIO
作为参数传递给putStrLn
。您实际上是指:
putStrLn (unsafePerformIO (entryGetText txtMagn))
现在进入 unsafePerformIO
。顾名思义,它是不安全,因此您最好清楚地知道您要完成什么。要安全地从 IO
中提取您的值并在以后使用它:
text <- entryGetText txtMagn
putStrLn text
要获取值,必须使用读取函数:
val <- getLine
someFunctionWhichNeedsTheValue (read val ::Float)
我正在尝试将 entryText 转换为字符串,以便将其用于其他功能。
`unsafePerformIO (entryGetText txtMagn)`
在尝试编译此代码时,我收到错误消息:
`Couldn't match type ‘IO a0 -> a0’ with ‘[Char]’
Expected type: String
Actual type: IO a0 -> a0
Probable cause: ‘unsafePerformIO’ is applied to too few arguments
In the first argument of ‘putStrLn’, namely ‘unsafePerformIO’`
提前致谢
这是因为你写了
putStrLn unsafePerformIO (entryGetText txtMagn)
此处将unsafePerformIO
作为参数传递给putStrLn
。您实际上是指:
putStrLn (unsafePerformIO (entryGetText txtMagn))
现在进入 unsafePerformIO
。顾名思义,它是不安全,因此您最好清楚地知道您要完成什么。要安全地从 IO
中提取您的值并在以后使用它:
text <- entryGetText txtMagn
putStrLn text
要获取值,必须使用读取函数:
val <- getLine
someFunctionWhichNeedsTheValue (read val ::Float)