不了解func字符串。Go中的TrimLeft

时间:2018-10-05 15:40:21

标签: go

我正在尝试测试使用func strings.TrimLeft的代码。我需要查看运行中的MVCE,因此我去了the API specification

它附带一个示例,我用以下代码导出了该示例:

package main
import (
    "fmt"
    "strings"
)

func main() {
    fmt.Print(strings.TrimLeft("¡¡¡Hello, Gophers!!!", "!¡"))
}

运行它后,您会得到Hello, Gophers!!!

我决定在输入字符串前加上,将代码更改为

package main

import (
    "fmt"
    "strings"
)

func main() {
    fmt.Print(strings.TrimLeft("irrelevant text¡¡¡Hello, Gophers!!!", "!¡"))
}

结果字符串是整个输入字符串:irrelevant text¡¡¡Hello, Gophers!!!

至少应该删除剪切集字符吗?!

2 个答案:

答案 0 :(得分:3)

trim暗示适当的后缀或前缀是一种行业标准。

trimLeft只会从字符串开头删除匹配的字符,并在第一个不匹配的字符处停止。在您的示例中,“ irelevant”的“ i”是它检查的第一个字符。它没有通过检查,因此停止修整(即不执行任何操作)。

相比之下,

trimRight从字符串的末尾开始按降序索引删除匹配项。

答案 1 :(得分:0)

  

至少应该删除剪切集字符吗?!

所有在字符串开头的字符。其中有零个,因此删除了零个字符。