- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我正在拆分这种格式的字符串:
"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/
我的应用程序中有这段代码 mp.start(); play=mp.isPlaying(); while(play) { play=mp.isPlaying()
我使用下面的代码进行碰撞检测。但随着 CCParallaxNode 继续无限滚动。我的位置出错了。到目前为止,我已经尝试了所有可能的解决方案。但一切都给我错误的视差值。 for (CCSprite *
我是一名优秀的程序员,十分优秀!