不理解函数字符串。TrimLeft in Go



我正在尝试测试使用func strings.TrimLeft的代码。我需要看到它的MVCE在运行,所以我去了API规范。

它附带了一个示例,我导出了该示例,其中包含以下代码:

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!!!

至少不应该删除切割字符吗?!

它是一个行业标准,trim意味着正确的后缀或前缀。

trimLeft只会从字符串的开头删除匹配的字符,并在第一个不匹配时停止。在您的示例中,"不相关"的"i"是它检查的第一个字符。它未通过检查,因此它停止修剪(即它什么都不做(。

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

至少不应该

删除剪切字符吗?!

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

最新更新