2017-05-25 108 views
0

学习围棋,多么伟大的语言。是否有内置的方法来从数组中删除第一个项目?

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

我有一个字符串“的棕色狐狸跳过”

我发现strings.Fields()它把它变成一个数组。我希望把这一字符串转换为两个字符串:

“的”,“棕色狐狸跳过”

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

谢谢您的帮助!

回答

2

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

x, a := a[0], a[1:] 

因此,使用你的代码,我们可以得到:

words := strings.Fields(theFoxString) 
firstWord, otherWords := words[0], words[1:] 

记住底层阵列并没有改变,但我们用来看这个数组的切片。对于大多数目的来说,这是可以的(甚至是有利的性能!),但它是需要注意的。

来源: https://github.com/golang/go/wiki/SliceTricks

+2

注:如果'theFoxString'不包含的话会出现运行时间恐慌。确保在切片之前检查“单词”的长度。 –

相关问题