此代碼不進行類型檢查:字節字符串預期不同的字節串
import Network.HTTP.Conduit
import qualified Data.ByteString.Char8 as BS
main :: IO()
main = do
resp <- simpleHttp "http://www.google.com"
putStrLn $ BS.unpack resp
拋出以下錯誤:
Couldn't match expected type `BS.ByteString'
with actual type `Data.ByteString.Lazy.Internal.ByteString'
In the first argument of `BS.unpack', namely `resp'
In the second argument of `($)', namely `BS.unpack resp'
In a stmt of a 'do' block: putStrLn $ BS.unpack resp
Failed, modules loaded: none.
如何解決這一問題?更改爲其他ByteString變體不起作用。
simpleHttp
函數的類型是這樣的:simpleHttp :: Control.Monad.IO.Class.MonadIO m => String -> m Data.ByteString.Lazy.Internal.ByteString
。所以我嘗試獲取IO monad中的ByteString並嘗試使用unpack
,但這會導致錯誤。
什麼是進口限定的Data.ByteString.Lazy作爲BS'? – viorior
@actionior它引發一個不同類型的錯誤。 – Sibi