我正在尝试检查给定字符是否存在于字节中:
//readBuf: []byte
//n: int
for i:=0;i<n;i++{
if readBuf[i]=="?"{
return true
}
}
“?”是字符串类型,所以我收到错误,因为 readBuf[i] 是一个字节。我怎样才能转换“?”到一个字节以便能够将其与 readBuf[i] 进行比较?
似乎 []byte("?")[0] 正在工作(将 1 元素字符串转换为 1 元素字节数组,提取第一个值),但我确信这不是正确的方法这样做。
最佳答案
rune literal '?'
是问号 rune 的无类型整数值。
if bytes.ContainsRune(readBuf[:n], '?') {
return true
}
因为字符?
在UTF-8中被编码为单个字节,所以测试也可以写成:
for _, b := range readBuf[:n] {
if b =='?'{
return true
}
}
关于go - 如何将单个字符转换为单个字节?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46292602/