码迷,mamicode.com
首页 > 其他好文 > 详细

Golang中的三个点

时间:2018-12-11 15:49:40      阅读:173      评论:0      收藏:0      [点我收藏+]

标签:可变   for   imp   Golan   code   end   class   今天   result   

之前提到了把一个切片追加到另外一个切片时使用到了...

今天我们好好研究一下这三个点,博客写着写着又成了,回字有四种写法

...第一种用法,可变长的参数

 1 package main
 2 
 3 import "fmt"
 4 
 5 func main() {
 6     fmt.Println(Sum(1, 4, 6, 7))
 7 }
 8 
 9 func Sum(numbers ...int) int {
10     result := 0
11     for _, n := range numbers {
12         result += n
13     }
14     return result
15 }

第9行代码定义了一个Sum函数,使用了一个可变长的参数numbers。我们在调用的时候,可以传入任意个指定类型的参数。

...第二种用法,使用slice调用上面的函数

 1 package main
 2 
 3 import "fmt"
 4 
 5 func main() {
 6     fmt.Println(Sum(1, 4, 6, 7))
 7     fmt.Println(Sum([]int{2, 3, 5}...))
 8 }
 9 
10 func Sum(numbers ...int) int {
11     result := 0
12     for _, n := range numbers {
13         result += n
14     }
15     return result
16 }

这样就不需要一个一个的把slice的元素打出来了

...第三种用法,略写数组的长度

a := [...]int{1, 3, 6}

...第四种用法,把一个切片追加到另外一个切片

6     a := [...]string{"a", "b", "c", "d", "e"}
 7     b := a[1:2]
 8     fmt.Printf("length of slice %d capacity %d\n", len(b), cap(b)) //length is 1 and capacity is 4
 9     b = append(b, "x", "y", "z", "m", "n")
10     fmt.Printf("length of slice %d capacity %d\n", len(b), cap(b)) //length is 1 and capacity is 8

Golang中的三个点

标签:可变   for   imp   Golan   code   end   class   今天   result   

原文地址:https://www.cnblogs.com/13579net/p/10102167.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!