溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用Go中三個點

發布時間:2021-10-08 09:52:49 來源:億速云 閱讀:156 作者:iii 欄目:開發技術

本篇內容主要講解“如何使用Go中三個點”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“如何使用Go中三個點”吧!

‘…' 其實是go的一種語法糖。
它的第一個用法主要是用于函數有多個不定參數的情況,可以接受多個不確定數量的參數。
第二個用法是slice可以被打散進行傳遞。

實例:

package main
 
import (
	"fmt"
)
 
func main(){
    name(1,2,3,4,5,6,7,8,9) //多個不確定數量的參數
    
    var strss= []string{
        "qwr",
        "234",
        "yui",
        "cvbc",
    }
    test1(strss...) //切片被打散傳入 strss... 等同于 "qwr","234","yui","cvbc"
}
 
func name(args ...int) {//可以接受任意個int參數
    for _, v:= range args{
        fmt.Println(v)
    }
}
 
func test1(args ...string) { //可以接受任意個string參數
    for _, v:= range args{
        fmt.Println(v)
    }
}

下面看下Go中三個點(...)用法,具體內容如下所示:

眾所周知,Go語言是嚴格類型語言,而開發的時候又遇到傳入參數不定的情況,怎么辦?

這里的三個點(…),就給我們編程人員帶來很大的靈活性,具體如下

在Golang中,三個點一共會用在四個地方(話說三個點的官方說法是什么?):

代碼如下:

package main
 
import (
    "fmt"
    "log"
)
 
func main() {
    //multiParam 可以接受可變數量的參數
 
    names := []string{"jerry", "herry"}
 
    //在數組文字中,...符號指定的長度等于文字中元素的數量。
    stooges := [...]string{"Moe", "Larry", "Curly"}
    stoogxs := []string{"Moe", "Larry", "Curly"}
 
    strParam("jerry", "herry")
    strParam(names...)
 
    //通過append合并兩個slice
    stoogxs = append(stoogxs, names...)
    fmt.Println(stoogxs)
 
    //標識數組元素個數,這里,...意味著數組的元素個數
    log.Println(len(stooges))
 
    nums := []int{4, 5, 6}
    stoogns := [...]int{4, 5, 6}
 
    intParam(1, 2, 3)
    intParam(nums...)
 
    //標識數組元素個數,這里,...意味著數組的元素個數
    log.Println(len(stoogns))
}
 
func strParam(args ...string) {
    //接受的參數放在args數組中
    for _, e := range args {
        log.Println(e)
    }
}
 
func intParam(args ...int) {
    res := 0
    for _, n := range args {
        res += n
    }
    log.Println(res)
 
}

變長的函數參數

如果最后一個函數參數的類型的是...T,那么在調用這個函數的時候,我們可以在參數列表的最后使用若干個類型為T的參數。這里,...T在函數內部的類型實際是[]T.

func intParam(args ...int) {
    res := 0
    for _, n := range args {
        res += n
    }
    log.Println(res)
}

調用擁有變長參數列表的函數

上面調用Sum函數時,是將變長參數分開寫的。如果我們有一個slice,那么我們調用時不必將slice拆開再調用,直接在slice后跟...即可:

nums := []int{4, 5, 6}
intParam(nums...)

標識數組元素個數

stooges := [...]string{"Moe", "Larry", "Curly"} // len(stooges) == 3

這里,...意味著數組的元素個數:

Go命令行中的通配符

描述包文件的通配符。
在這個例子中,會單元測試當前目錄和所有子目錄的所有包:

go test ./...

到此,相信大家對“如何使用Go中三個點”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

go
AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女