如何将转义序列字符串转换为字节?



创建需要处理一些数据的TCP服务器。我有一张网。Conn实例"连接",我将从中读取所述数据。代码段的下半部分产生了一个错误,指出它不能使用'esc'值作为字节值。

const(
esc = "an"
)
....
c := bufio.NewReader(connection)
data, err := c.ReadBytes(esc)

显然,需要一些转换,但是当我尝试

const(
esc = "an"
)
....
c := bufio.NewReader(connection)
data, err := c.ReadBytes(byte(esc))

编译器注意到我不能将esc转换为字节。是因为我声明了"an"作为包级别的const值?或者是否有其他东西与我如何对要读取的字节进行帧化有关?

您不能将esc转换为byte,因为您不能将字符串转换为单个字节。您可以将字符串转换为字节片([]byte)。

bufio.Reader只支持单字节分隔符,您应该使用带有自定义分割函数的bufio.Scanner来代替多字节分隔符。

可能是https://stackoverflow.com/a/37531472/1205448

的修改版本

最新更新