我是靠谱客的博主 孤独手套,最近开发中收集的这篇文章主要介绍make创建切片之后初始化了吗_Go学习每日一问(3)-make,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

每次学习并整理一个Golang的知识点,每天进步一点点。今天来学习下make的一个知识点。

代码片段

看如下这段代码,并猜测输出结果:

package mainimport "fmt"func makeList() []int {s := make([]int, 5)s = append(s, 1, 2, 3)return s}func makeList2() []int {s := make([]int, 0)s = append(s, 1, 2, 3)return s}func main() {s := makeList()s2 := makeList2()fmt.Println("打印s:", s)fmt.Println("打印s2:", s2)}
171a29dc18959429f8ad0330269daff5.png

思考后看答案


答疑解惑

代码执行结果如下:

打印s: [0 0 0 0 0 1 2 3]打印s2: [1 2 3]

你做对了吗?

这道题考察的是slice的make和append方法;Go语言提供的内置函数make()可以用于灵活的创建数组切片,s := make([]int, 5) 创建了一个初始元素个数为5的数组切片,且元素初始值为0;append()函数可以向slice的尾端继续新增元素,从而形成一个新的数组切片;而s := make([]int, 0)创建了一个初始元素个数为零个的数组切片,即当前存储的元素个数为零,使用append追加元素,所加即所得,不存在初始值为0的元素,所以得到[1 2 3]。

下期提问

观察如下代码片段,判断能否编译通过;如果可以,写出输出结果?

package mainimport "fmt"var (num       := 60doubleNum = num * 2)func main() {fmt.Println(num, doubleNum)}

答案及解析将在下期文章中给出,欢迎大家在评论区留言,独乐乐不如众乐乐,交流学习,互相进步。


欢迎转发和评论。更多优质原创文章,欢迎关注微信公众号“IYue爱月”。

最后

以上就是孤独手套为你收集整理的make创建切片之后初始化了吗_Go学习每日一问(3)-make的全部内容,希望文章能够帮你解决make创建切片之后初始化了吗_Go学习每日一问(3)-make所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部