golang的string在进行两个字符串比较时,会比较两个字符串底层的[]byte是否相同, 而不是单纯的比较字符串是否一样, 所以,在[]byte转字符串进行比较前需要将其中的byte切片进行等长度截取, 然后转换, 否则会产生长度不匹配问题.
代码如下:
package main
import (
"fmt"
)
func main() {
var test1 string = "hello"
var test2 []byte = make([]byte, 1024)
copy(test2, []byte("hello"))
fmt.Println(test1 == string(test2))
fmt.Println(test1)
fmt.Println(string(test2))
fmt.Println(test2)
}
运行结果:
有疑问加站长微信联系(非本文作者)