今天在观看Golang视屏的时候,发现一个go中特有的语法糖:“...”。视屏中是这样来用的:strss=append(strss,strss2...)。我没看懂什么意思,就网上搜了一下,下面做一个总结。
简单来说,这个语法的作用就是将一个切片或者是数组打散,分割为多个元素。下面来看一下代码,顺便学一下go语言中对切片或者是数组的操作:
下面用到的基础语法有任何看不懂的,可以去翻一下我之前的笔记,当中用到的这些简单语法都有讲解。
①我们首先了解一下golang中切片或者是数组中元素的增加。
三个点“...”,它的意思是可以传入不确定数量的参数,大白话说就是可以传入多个变量插到切片中,这是三个点语法糖的第一个用途。如下图:
我们可以看到,我们可以传入任意数量的变量来一次性追加到到切片的尾部,并且append函数会在原来的地址上继续追加一块连续的内存地址赋值给接收返回值的切片变量(如果当前切片容量不够用的话),但不会影响传入的切片。
②我们上面提到了“...”语法的第一个用途,即定义函数时,可以接收不确定个数的参数。我们来写代码看一下。
从上图,我们可以看到,我们定义的名为myFunc的函数,只有一个名为temps的形参,但是在调用这个函数的 时候,我们却传入了七个数字作为参数,这就是因为我们形参后面用了“...”语法。
③下面我们来看一下“...”语法的第二个用途,即可以将切片或者是数组打散。我们来写代码看一下。
上面这段代码呢,如果不用“...”语法的话,就得写循环去遍历整个切片,那就会多很多代码。
④有了上面的基础,我们下面了解一下golang中切片或者是数组中元素的移除。
在golang中,没有直接给我们提供诸如其他语言中remove这样的函数,所以我们只能通过append函数来完成切片或者是数组中元素的移除。
上图可以看出,在go中,我们想要移除切片或者是数组中的一个元素,是通过append来实现的,即以要被移除的元素作为分界点,将切片分割开再组合起来。