Go 为什么TrimLeft没有';你不能按预期工作吗?
我希望标签是“account”,但它是“account”。为什么要删除“a”Go 为什么TrimLeft没有';你不能按预期工作吗?,go,Go,我希望标签是“account”,但它是“account”。为什么要删除“a” package main import "fmt" import "strings" func main() { s := "refs/tags/account" tag := strings.TrimLeft(s, "refs/tags") fmt.Println(tag) } 它正在工作: TrimLeft返回字符串的一部分,其中包含所有前导Unicode 已删除割集中包含的代码点 由
package main
import "fmt"
import "strings"
func main() {
s := "refs/tags/account"
tag := strings.TrimLeft(s, "refs/tags")
fmt.Println(tag)
}
它正在工作:
TrimLeft返回字符串的一部分,其中包含所有前导Unicode
已删除割集中包含的代码点
由于第一个参数(割集)中有一个“a”,因此帐户中的前导“a”将被删除使用TrimPrefix而不是TrimLeft
package main
import "fmt"
import "strings"
func main() {
s := "refs/tags/account"
tag := strings.TrimPrefix(s, "refs/tags/")
fmt.Println(tag)
}
请注意,以下TrimLeft调用将产生相同的“fghijk”
“字符串:
所以TrimLeft不是适合您需要的方法。我想在您给出的示例中不可能使用它来获得您期望的结果。您可能对
strings.Split
感兴趣。实际上,它是strings.Index。不需要分开。啊。。。看来它并没有像预期的那样起作用。我需要的似乎是字符串。Index[]@Theuserwithnohat Right,trimlefit是一个违反直觉的命名方法。索引是可以的,但可能不像TrimPrefix那样方便和直观。TrimPrefix在某些情况下也是必要的,所以很高兴知道。我还是不明白。从文档中,我看不出TrimLeft和TrimPrefix之间的区别。@djeikyb请参阅'TrimPrefix'和'TrimLeft'的第二个参数。TrimPrefix接收“prefix string”,但TimeLeft接收“cutset string”。
package main
import (
"fmt"
"strings"
)
func main() {
s := "/abcde/fghijk"
tag := strings.TrimLeft(s, "/abcde")
fmt.Println(tag)
tag = strings.TrimLeft(s, "/edcba")
fmt.Println(tag)
}