Go by Example ไธญๆ–‡็‰ˆ: ๅ˜ๅ‚ๅ‡ฝๆ•ฐ

ๅฏๅ˜ๅ‚ๆ•ฐๅ‡ฝๆ•ฐใ€‚ ๅœจ่ฐƒ็”จๆ—ถๅฏไปฅไผ ้€’ไปปๆ„ๆ•ฐ้‡็š„ๅ‚ๆ•ฐใ€‚ ไพ‹ๅฆ‚๏ผŒfmt.Println ๅฐฑๆ˜ฏไธ€ไธชๅธธ่ง็š„ๅ˜ๅ‚ๅ‡ฝๆ•ฐใ€‚

package main
import "fmt"

่ฟ™ไธชๅ‡ฝๆ•ฐๆŽฅๅ—ไปปๆ„ๆ•ฐ้‡็š„ int ไฝœไธบๅ‚ๆ•ฐใ€‚

func sum(nums ...int) {
    fmt.Print(nums, " ")
    total := 0
    for _, num := range nums {
        total += num
    }
    fmt.Println(total)
}
func main() {

ๅ˜ๅ‚ๅ‡ฝๆ•ฐไฝฟ็”จๅธธ่ง„็š„่ฐƒ็”จๆ–นๅผ๏ผŒไผ ๅ…ฅ็‹ฌ็ซ‹็š„ๅ‚ๆ•ฐใ€‚

    sum(1, 2)
    sum(1, 2, 3)

ๅฆ‚ๆžœไฝ ๆœ‰ไธ€ไธชๅซๆœ‰ๅคšไธชๅ€ผ็š„ slice๏ผŒๆƒณๆŠŠๅฎƒไปฌไฝœไธบๅ‚ๆ•ฐไฝฟ็”จ๏ผŒ ไฝ ้œ€่ฆ่ฟ™ๆ ท่ฐƒ็”จ func(slice...)ใ€‚

    nums := []int{1, 2, 3, 4}
    sum(nums...)
}
$ go run variadic-functions.go 
[1 2] 3
[1 2 3] 6
[1 2 3 4] 10

ๆŽฅไธ‹ๆฅๆˆ‘ไปฌ่ฆ็œ‹็š„ๆ˜ฏ Go ๅ‡ฝๆ•ฐ็š„ๅฆไธ€ไธชๅ…ณ้”ฎ็‰นๆ€ง๏ผš้—ญๅŒ…ใ€‚

ไธ‹ไธ€ไธชไพ‹ๅญ: ้—ญๅŒ