gpt4 book ai didi

go - struct 中的字符串文字比 struct 外的相同字符串长

转载 作者:数据小太阳 更新时间:2023-10-29 03:30:23 27 4
gpt4 key购买 nike

我在我的 Go 代码中遇到了一个非常奇怪的问题。似乎相同的字符串,一个在结构内部声明,一个在结构外部声明,在使用时具有不同的长度。以下代码显示了一个示例:

type evaluateTest struct {
name string
expected int
fen string

}

func TestEvaluate(t *testing.T) {
cases := []evaluateTest{
{"Pawn testing", 330, "​​8/8/8/8/4P3/3P4/2P5/8 w KQkq - 0 11"},
}

for _, test := range cases {
outside := "​8/8/8/8/4P3/3P4/2P5/8 w KQkq - 0 11"
fmt.Printf("String in struct has length %v\n", len(test.fen))
fmt.Printf("String outside struct has length %v\n", len(outside))

这个输出:

String in struct has length 41
String outside struct has length 38

遍历字符串并打印字符代码会在结构中字符串的前三个位置(十进制 226、128、139)给出垃圾字符,而在外部声明的位置则没有垃圾字符。

我真的不知道这里发生了什么。非常感谢任何帮助。

最佳答案

一个字符串以两个零宽度空格 (\u200b) 开头。另一个以一个开头。

在这种情况下,使用 %q 打印以查看发生了什么会很有帮助。参见 the playground example .

关于go - struct 中的字符串文字比 struct 外的相同字符串长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48236901/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com