Go学习笔记03
来源:互联网 发布:程序员杂志app 编辑:程序博客网 时间:2024/06/14 12:00
Go包的可见性与类型
1. package情况说明
t1.go
与main.go
在同一个文件夹下,main
函数在main.go
中。
2. t1.go内容
package main// 小写开头,未公开的类型type myType intfunc MyNew(val int) myType { return myType(val) // 未公开数据类型可以在返回值中使用}// 类型公开,部分成员不公开type MyStruct struct { // 对外公开 Name string // 对外公开 age int // 对外不公开 Vip bool}// user和Admin组合,正确的搭配方式,见下type user struct { // 结构不公开,但成员公开 Name string Age int}// 对外而言,Admin可以访问 Name, Age, Leveltype Admin struct { user // user不公开,不可直接访问,但是它的成员提升到Admin可以直接访问 Level int}
3. main.go内容
// test.go project main.gopackage mainimport ( "fmt" "reflect")func main() { fmt.Println("Hello") //b := myType{} // 错误,只有大写字母开头的可以被外面的直接使用 a := MyNew(1) // 同一个package下的文件互相调用不用引入 fmt.Printf("%T\n", a) fmt.Println(reflect.TypeOf(a), reflect.TypeOf(1)) // 下面的是错误的,因为(type)只能用在接口类型上 /* switch v := a.(type) { case int: fmt.Println("int") break case string: fmt.Println("string") break default: break } */}
阅读全文
0 0
- Go学习笔记03
- 【Go学习笔记】Hello Go!
- Go语言学习笔记
- Go学习笔记
- go学习笔记
- Go语言学习笔记
- go语言学习笔记
- Go学习笔记
- Go学习笔记(2)
- Go语言学习笔记
- go学习笔记
- Go学习笔记:interface
- GO语言学习笔记
- Go语言学习笔记
- GO语言学习笔记
- Go Template学习笔记
- Go学习笔记一
- 【GO学习笔记】-0321
- maven
- 书籍网站
- 在maven项目里引进jar包
- ActiveMQ知识巩固
- Leveldb源码解析第三篇【sstable 收尾】
- Go学习笔记03
- 写论文时的一些高大上词句
- java高并发下对象创建过多出现的内存问题
- 如何激活vegas软件
- 【ubuntu+opencv3】ubuntu16.04+qt5+opencv3.2.0编译与安装
- Android 高德地图不能定位
- Retrofit用法详解
- 从mysql表中随机取出几条数据
- Leveldb源码解析第四篇【sstable添加key的流程】