首先:
各位前辈、同学好,不才第一次写文章,旨在记录与分享,如果内容有错误与不足之处,还望各位前辈和同学们多多批评指正。
那么接下来让各位见笑了。
探索发现:
1、new函数的参数变量类型,是可以接受任何类型(包括 map、slice、channel、自定义类型等)
2、new函数返回的是指针
3、new出来的slice试了试都可以正常读取插入
4、new出来的map只能读不能写入,比如
tmap := new(map[string]string)
类似于 tmap :=map[string]string(nil) 或 var tmap map[string]string的效果
这个应该跟map数据结构有关,下次再深入讨论
5、new出来的channel是不能写入,且缓冲区为0,所以,能不能读取都没有意义
6、new会给分配内存,同时赋初始值,比如int类型变量0,string是“”,指针类型是nil等
7、map、slice、channel肯定还是要用make
验证过程:
slice能正常append,new返回指针
卡十秒,什么也没输出,上面注释声明效果一样
会报错如下: