衆所周知,Go語言是嚴格類型語言,而開發的時候又遇到傳入參數不定的狀況,怎麼辦?php
這裏的三個點(...),就給咱們編程人員帶來很大的靈活性,具體以下java
可參考https://github.com/guyan0319/...git
示例github
package main import "fmt" func main() { //multiParam 能夠接受可變數量的參數 multiParam("jerry", "herry") names := []string{"jerry", "herry"} multiParam(names...) } func multiParam(args ...string) { //接受的參數放在args數組中 for _, e := range args { fmt.Println(e) } }
須要注意的是,可變參數是函數最右邊的參數,普通參數放在左側,能夠0到n個。如golang
package main import "fmt" func main() { //multiParam 能夠接受可變數量的參數 multiParam("jerry", 1) multiParam("php", 1, 2) } func multiParam(name string, args ...int) { fmt.Println(name) //接受的參數放在args數組中 for _, e := range args { fmt.Println(e) } }
s
若是使用s...
符號解壓縮切片,則能夠將切片直接傳遞給可變參數函數。在這種狀況下,不會建立新的切片。編程
示例數組
package main import "fmt" func main() { //multiParam 能夠接受可變數量的參數 names := []string{"jerry", "herry"} multiParam(names...) } func multiParam(args ...string) { //接受的參數放在args數組中 for _, e := range args { fmt.Println(e) } }
還有一種狀況就是經過append合併兩個slice,app
stooges := []string{"Moe", "Larry", "Curly"} lang := []string{"php", "golang", "java"} stooges = append(stooges, lang...) fmt.Println(stooges)//[Moe Larry Curly php golang java]
在數組文字中,...
符號指定的長度等於文字中元素的數量。函數
stooges := [...]string{"Moe", "Larry", "Curly"} arr := [...]int{1, 2, 3} fmt.Println(len(stooges)) fmt.Println(len(arr))
這裏...
也能夠不用。測試
go
描述軟件包列表時,命令使用三個點做爲通配符。
此命令測試當前目錄及其子目錄中的全部軟件包。
$ go test ./...
參考:
https://yourbasic.org/golang/...