2、var arr []int 这时arr就是一个slice 切片 。
3、数组中的元素可以是任何数据类型,包括值类型和引用类型,但是 不能混用 。
4、数组创建后,如果没有赋值,有默认值如下:
数值类型数组: 默认值为 0
字符串数组: 默认值为 ""
bool数组: 默认值为 false
5、使用数组的步骤:
(1)声明数组并开辟空间
(3)给数组各个元素赋值
(3)使用数组
6、数组的下标是从0开始的。
7、数组下标必须在指定范围内使用,否则报panic:数组越界,比如var arr [5]int的有效下标为0~4.
8、Go的数组属于 值类型 ,在默认情况下是 值传递 ,因此会进行值拷贝。 数组间不会相互影响。
9、如想在其他函数中去修改原来的数组,可以使用 引用传递 (指针方式)。
10、长度是数组类型的一部分,在传递函数参数时,需要考虑数组的长度,看以下案例:
题1:编译错误,因为不能把[3]int类型传递给[]int类型,前者是数组,后者是切片;
题2:编译错误,因为不能把[3]int类型传递给[4]int类型;
题3:编译正确,因为[3]int类型传给[3]int类型合法。
golang 没有继承 另外 组合用结构和接口解决了你说的继承 在golang被拆分成 接口interface 和 结构了 这两个内容中有部分类似继承
组合也没有 也是用 接口和结构 解决了
如:
核心思想就是, 外层实现接口,通过递归嵌套将被实现的接口实例置于内层,从而达到外层定义,内层使用的效果 :
BaseBase和Derived都是外层结构体,在它们这一层实现了F2()。ori_impl_1以及ori_impl_2都是外层结构体实现的B接口实例,置于内层完成调用
struct中的字段可以不用给名称,这时称为匿名字段。匿名字段的名称强制和类型相同。例如:
如果struct中嵌套的struct类型是自己的指针类型,可以用来生成链表或二叉树等数据结构
例如,定义一个单链表数据结构