遇到一个问题,代码如下:
![2018-05-17 20-23-17 的屏幕截图.png](https://static.studygolang.com/180517/d1889b63827895c989bfd7a8d86608c9.png)
![2018-05-17 20-24-08 的屏幕截图.png](https://static.studygolang.com/180517/3a18e431360d8ce8dc2da4e6b9f02add.png)
test的类型是typeOfSlice,底层数据类型是[]byte
而binary.BigEndian.Uint32这个函数(方法)的参数类型却是[]byte
这样直接赋值或者进行类型转换都是可以的,为什么?
Go不是强类型语言么,为啥这儿类型不一样却也是可以的?
难道go对slice或者map等引用类型有特殊处理方法吗?有没有资料介绍这一块的?
本人是新手
问题解决了:可用用 type 在全局或函数内定义新类型。新类型不是原类型的别名,除拥有相同数据存储结构外,它们之间没有任何关系,不会持有原类型任何信息。除非目标类型是未命名类型,否则必须显式转换。
#1