gpt4 book ai didi

go - strings.Split() 似乎在 [] 处逃脱并继续前进(没有错误)

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

我正在拆分这种格式的字符串:

"I[07-06|19:56:12.407] Added to precommit module=consensus vote="Vote{2:8FD0F8F1E2FA 1/00/2(Precommit) D7D7C52037F0 /E305561D4A6C.../}" precommits="VoteSet{H:1 R:0 T:2 +2/3:<nil> BA{4:__X_} map[]}"

像这样:

descripParse := strings.Split(string, "module")

当我使用像上面这样的字符串时:

descripParse[1] == "=consensus vote="Vote{2:8FD0F8F1E2FA 1/00/2(Precommit) D7D7C52037F0 /E305561D4A6C.../}" precommits="VoteSet{H:1 R:0 T:2 +2/3:<nil> BA{4:__X_} map"

您会注意到 [] 之后的所有内容(包括 [])都消失了。这很糟糕,但更糟糕的是 [] 出现在“module”之前的行中,如下所示:

"I[07-06|19:56:12.637] Added to lastPrecommits: VoteSet{H:2 R:0 T:2 +2/3:DAF77215090623803CB9715FFD98F58E24A37252:1:C10362D25921 BA{4:XXXX} map[]} module=consensus"

在这里,如果我查询 descripParse[1] ,我的程序崩溃了:

panic: runtime error: index out of range

因为分割点出现在[]之后,并且:

descripParse[0] == "I[07-06|19:56:12.637] Added to lastPrecommits: VoteSet{H:2 R:0 T:2 +2/3:DAF77215090623803CB9715FFD98F58E24A37252:1:C10362D25921 BA{4:XXXX} map"

发生了什么事?

最佳答案

因为字符串中有特殊字符,所以必须使用反引号 (`) 字符而不是双引号 (") 字符来定义字符串

有关此主题的更多信息,请查看语言规范中的字符串文字 https://golang.org/ref/spec#String_literals

这是一小段有效的演示代码: https://play.golang.org/p/Bf70i5u3MO

package main

import (
"fmt"
"strings"
)

func main() {
str := `I[07-06|19:56:12.407] Added to precommit module=consensus vote="Vote{2:8FD0F8F1E2FA 1/00/2(Precommit) D7D7C52037F0 /E305561D4A6C.../}" precommits="VoteSet{H:1 R:0 T:2 +2/3:<nil> BA{4:__X_} map[]}`
fmt.Println(str)
descripParse := strings.Split(str, "module")
fmt.Println(len(descripParse))
fmt.Println(descripParse)

if descripParse[1] == `=consensus vote="Vote{2:8FD0F8F1E2FA 1/00/2(Precommit) D7D7C52037F0 /E305561D4A6C.../}" precommits="VoteSet{H:1 R:0 T:2 +2/3:<nil> BA{4:__X_} map[]}` {
fmt.Println("WOOHOO!")
} else {
fmt.Println(descripParse[1])
}
}

关于go - strings.Split() 似乎在 [] 处逃脱并继续前进(没有错误),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45091543/

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