报告使用 strings.HasPrefix 检查前缀,随后又使用 strings.TrimPrefix 移除该前缀的代码。
此模式会对前缀进行两次扫描。 strings.CutPrefix 会用一步移除前缀,并返回更新后的字符串以及一个用于报告该前缀是否存在的布尔值。
示例:
func Strip(s string) (string, bool) {
if strings.HasPrefix(s, "v") {
return strings.TrimPrefix(s, "v"), true
}
return s, false
}
要修正代码,请使用将 HasPrefix/TrimPrefix 替换为 CutPrefix 快速修复。
在应用快速修复后:
func Strip(s string) (string, bool) {
if after, ok := strings.CutPrefix(s, "v"); ok {
return after, true
}
return s, false
}