**2.**map:扩容会加倍且重新对存储的值排序
slice:扩容会会创建一个新的底层数组,并将原数组的内容复制到新数组中,然后将slice指向新的数组
**4.**可以直接两个结构体比较如struct1 == struct2(!=),也可两个部分比较如struct1.age == struct2.age
5.
func main() {
x := "hello!"
for i := 0; i < len(x); i++ {
x := x[i]//重新声明+1,但由于在循环内部所以不影响循环外的x与len(x),此时x为单字符
if x != '!' {
x := x + 'A' - 'a'//重新声明+2,将小写转化为大写,也不会影响前两个x
fmt.Printf("%c", x)
}
}
}
//在条件,循环,函数中分别重新声明都不会影响原变量,会将其他原变量屏蔽