报告遍历 strings.Splitstrings.Fields 的循环。

这些函数会分配一个仅用于迭代的子字符串切片。 在 Go 1.24 及更高版本中,strings.SplitSeqstrings.FieldsSeq 返回的迭代器可以直接生成每个片段,而无需分配中间切片。

示例:


func CountCSV(s string) int {
	n := 0
	for p := range strings.SplitSeq(s, ",") {
		if p != "" {
			n++
		}
	}
	return n
}

要修正代码,请使用将 Split 替换为 SplitSeq 快速修复。

在应用快速修复后:


func CountWords(s string) int {
	n := 0
	for _, w := range strings.Fields(s) {
		_ = w
		n++
	}
	return n
}

示例:


func CountWords(s string) int {
	n := 0
	for w := range strings.FieldsSeq(s) {
		_ = w
		n++
	}
	return n
}

要修正代码,请使用将 Fields 替换 FieldsSeq 快速修复。

在应用快速修复后:


n := 0
for w := range strings.FieldsSeq(s) {
    _ = w
    n++
}