2014-02-24 63 views

回答

5

必须使用pack将字符串转换为ByteString

如果字符串是字符串文字,则可以使用OverloadedStrings扩展名。这将自动将字符串文字转换为ByteString

+0

你的意思是我必须首先将字符串参数转换为'ByteString'对象之前,我把它们传递给'replace'?我如何生成替换字符串参数(第二个参数)到'replace'?这个参数的类型必须是'Substitution'的一个实例。 –

+2

是的,你必须将字符串参数转换成ByteString对象,而ByteString是类型类Substitution的一个实例,所以它适合作为replace的第二个参数。 – Teetoo

1

的例子来说明Teetoo的answer

Prelude> :module + Data.ByteString.Char8 Data.ByteString.Search 
Prelude Data.ByteString.Char8 Data.ByteString.Search> replace (pack "World") (pack "Derek") (pack "Hello, World!") 
"Hello, Derek!" 
Prelude Data.ByteString.Char8 Data.ByteString.Search> 
相关问题