Golang基础之切片基础习题——李文周老师

1. 请写出下面代码的输出结果。

func main() {
	var a = make([]string, 5, 10)
	for i := 0; i < 10; i++ {
		a = append(a, fmt.Sprintf("%v", i))
	}
	fmt.Println(a)
}

运行截图:在这里插入图片描述
结果分析:起初我误以为a切片的类型为int,故推测结果为[0,0,0,0,0,0,1,2,3,4,5,6,7,8,9],因为int类型的切片其元素有default值——0,而string型没有,所以本题运行结果如图中所示(看清元素之间没有comma)。至于切片扩容,由于新申请的长度都为1不大于旧切片长度的二倍,且旧切片的长度小于1024,所以旧切片长度的二倍就是扩容后的切片容量。
而此题中向string型切片中添加其他类型的元素请参考Go 字符切片中添加其他类型元素,其中涉及到切片类型的转换问题,此处不宜多讲,可参阅其他资料查询。
2. 请使用内置的sort包对数组var a = […]int{3, 7, 8, 9, 1}进行排序(附加题,自行查资料解答)。
代码如下:

package main

import (
	"fmt"
	"sort"
)

func main()  {
	var a = [...]int{3, 7, 8, 9, 1}
	sort.Ints(a[:])
	fmt.Println(a)
}

运行结果:在这里插入图片描述
此外,内置的sort包还可以对float、string类型的切片进行排序
参考文章:golang之切片与排序
题目出处:[李文周Go基础之切片基础](https://www.liwenzhou.com/posts/Go/06_slice/)

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值