经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » Go语言 » 查看文章
Golang中的三个点
来源:cnblogs  作者:JustDotNet  时间:2018/12/12 9:51:48  对本文有异议

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

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

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

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

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

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

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

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

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

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

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

  1. 6 a := [...]string{"a", "b", "c", "d", "e"}
  2. 7 b := a[1:2]
  3. 8 fmt.Printf("length of slice %d capacity %d\n", len(b), cap(b)) //length is 1 and capacity is 4
  4. 9 b = append(b, "x", "y", "z", "m", "n")
  5. 10 fmt.Printf("length of slice %d capacity %d\n", len(b), cap(b)) //length is 1 and capacity is 8
 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号