Haskell 是否有从字符串到ByteString的自动转换?
这是一个使用Network.HTTP.Simple包的示例,我已经看过好几次了。如何将字符串作为签名传递给该函数:Haskell 是否有从字符串到ByteString的自动转换?,haskell,Haskell,这是一个使用Network.HTTP.Simple包的示例,我已经看过好几次了。如何将字符串作为签名传递给该函数: addRequestHeader (H.hContentType, "application/json") 当我尝试此操作时,出现错误无法将预期类型“C8.ByteString”与实际类型“[Char]”匹配,因此我必须使用Data.ByteString.Char8.pack函数来实现此功能。为什么其他人不这样做?这里有自动转换吗?有一个字符串文本的“自动转换”,也就是说,对于那
addRequestHeader (H.hContentType, "application/json")
当我尝试此操作时,出现错误无法将预期类型“C8.ByteString”与实际类型“[Char]”匹配,因此我必须使用Data.ByteString.Char8.pack函数来实现此功能。为什么其他人不这样做?这里有自动转换吗?有一个字符串文本的“自动转换”,也就是说,对于那些在引号之间显式给出的字符串,“…”
,比如您的“应用程序/json”
要打开它,你需要分机
其他字符串表达式(例如string
类型的变量、函数的返回值等)将不会自动转换。字符串文本有一个“自动转换”,即在引号“…”
之间显式给出的字符串,如“应用程序/json”
要打开它,你需要分机
其他字符串表达式(例如
string
类型的变量、函数的返回值等)不会自动转换。Haskell通常没有自动转换。所有转换都是显式完成的。@carcigenicate否只有这一个带有ByteString的转换,您可以使用语言扩展。Haskell通常没有自动转换。所有转换都是显式完成的。@carcigenicate否只有这一个带有ByteString,您可以使用语言扩展名.thx。就这样。我查过了。它只适用于静态字符串文字,不适用于字符串变量@使用字符串变量的stefang您通常希望比“转换为bytestring”更具体,因为有几种不同的不兼容的方法可以实现这一点(这不是Haskell的问题:它在Haskell中更明显,因为它是默认使用unicode字符串的较旧语言之一)thx。就这样。我查过了。它只适用于静态字符串文字,不适用于字符串变量@使用字符串变量的stefang您通常希望比“转换为bytestring”更具体,因为有几种不同的不兼容方法(这不是Haskell的问题:在Haskell中更明显,因为它是默认使用unicode字符串的较旧语言之一)
addRequestHeader :: Network.HTTP.Types.Header.HeaderName
-> Data.ByteString.Internal.ByteString -> Request -> Request