是否有内置方法可以从数组中删除第一项?

Sae*_*ven 3 go

学习Go,多么伟大的语言啊。

是否有内置方法可以删除数组中的第一项?有点像 PHP 的 array_shift

我有一根绳子,“棕色狐狸跳”

我发现strings.Fields()它将它变成一个数组。我想将该字符串变成两个字符串:

“那个”、“棕色狐狸跳跃”

words := strings.Fields(theFoxString)
firstWord := // unshift first word from words
otherWords := // join what's left of words with ' '
Run Code Online (Sandbox Code Playgroud)

感谢您的帮助!

ctc*_*rry 6

如果我们有任何 slice a,我们可以这样做:

x, a := a[0], a[1:]
Run Code Online (Sandbox Code Playgroud)

因此,使用您的代码,我们得到:

words := strings.Fields(theFoxString)
firstWord, otherWords := words[0], words[1:]
Run Code Online (Sandbox Code Playgroud)

请记住,底层数组没有改变,但是我们用来查看该数组的切片已经改变了。对于大多数用途来说,这是可以的(甚至在性能方面也是有利的!),但这是需要注意的事情。

来源: https: //go.dev/wiki/SliceTricks

  • 注意:如果“theFoxString”不包含任何单词,则会发生运行时恐慌。确保在切片之前检查“words”的长度。 (2认同)