slice 练习
1、分析代码输出结果
package mainimport "fmt"/* slice 的练习题*/func main() {// 1、分析代码的输出结果var a = make([]string, 5, 10) // len=5 , cap=10fmt.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 并不会输出该字符串, 只会返回该字符串// 如果在编写程序的时候想要 保留值但不进行输出, 可以用 Sprintfc := fmt.Sprintf("%v",bstr) //拿 c 来接收一下 Sprintf 的格式化字符串fmt.Println(c)//我的测试//考试答辩
