我只想要一个具有结构类型“t”的切片的函数,返回返回我正在寻找的元素和剩余的元素,我尝试使用部分解决方案来解决我的问题,就像这里指出的那样:Delete element in a slice 但出于一个奇怪的原因,它没有按预期工作 https://play.golang.org/p/tvJwkF5c_tj
func main() {
var names = []string{"john", "julio", "pepito","carlos"}
fmt.Println(getMe("john", names))
}
func getMe(me string, names []string) (string, []string, bool) {
for i := range names {
if names[i] == me {
return names[i], append(names[:i], names[i+1:]...), true
}
}
return "", nil, false
}
但结果给了我:
julio [julio pepito carlos] true
更新:https: //play.golang.org/p/1xbu01rOiMg 从@Ullaakut 那里得到答案如果我这样做:append(names[:i], names[i+1:]...)
,它会改变原始切片,所以这对我不起作用,我不希望我的切片改变,因为我稍后会用到它
Smart猫小萌
相关分类