slice 练习
1、分析代码输出结果
package main
import "fmt"
/* slice 的练习题*/
func main() {
// 1、分析代码的输出结果
var a = make([]string, 5, 10) // len=5 , cap=10
fmt.Printf("a=%v,cap(a)=%v,len(a)=%d, ptr(a)=%p \r\n", a,cap(a),len(a), a)
// [0,0,0,0,0] cap=10 len=5 a=地址 0xc00007c0a0
// 错了, a 只是声明了,没有初始化, 所以 a是 [ ]
for i:=0;i<10;i++{
a = append(a,fmt.Sprintf("%v", i ))
}
fmt.Println(a)
// append 对切片 a 扩容
// 前面 a 没有初始化, 所以不用 0 填充
// [ 0 1 2 3 4 5 6 7 8 9] len=15 cap=20
}
2、 slice 切片的 sort 排序
3、关于Sprintf :
/* 测试 Sprintf 和 Printf 的区别 */
astr := "我的测试"
bstr := "考试答辩"
fmt.Printf("%v\r\n", astr) // 我的测试
fmt.Sprintf("%v\r\n",bstr) // 什么都没有输出
// Sprintf 并不会输出该字符串, 只会返回该字符串
// 如果在编写程序的时候想要 保留值但不进行输出, 可以用 Sprintf
c := fmt.Sprintf("%v",bstr) //拿 c 来接收一下 Sprintf 的格式化字符串
fmt.Println(c)
//我的测试
//考试答辩