当前位置:  开发笔记 > 编程语言 > 正文

从Go中的切片中删除字符串

如何解决《从Go中的切片中删除字符串》经验,为你挑选了1个好方法。

我有一些字符串,我想删除一个特定的字符串.

strings := []string
strings = append(strings, "one")
strings = append(strings, "two")
strings = append(strings, "three")

现在,我怎么去除串"two"strings



1> icza..:

找到要删除的元素并将其删除,就像从任何其他切片中的任何元素一样.

找到它是线性搜索.删除是以下切片技巧之一:

a = append(a[:i], a[i+1:]...)
// or
a = a[:i+copy(a[i:], a[i+1:])]

这是完整的解决方案(在Go Playground上试试):

s := []string{"one", "two", "three"}

// Find and remove "two"
for i, v := range s {
    if v == "two" {
        s = append(s[:i], s[i+1:]...)
        break
    }
}

fmt.Println(s) // Prints [one three]

如果要将其包装到函数中:

func remove(s []string, r string) []string {
    for i, v := range s {
        if v == r {
            return append(s[:i], s[i+1:]...)
        }
    }
    return s
}

使用它:

s := []string{"one", "two", "three"}
s = remove(s, "two")
fmt.Println(s) // Prints [one three]

推荐阅读
跟我搞对象吧
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有