在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
defer关键字
Go的内置函数
Go数组内存分析
Go的切片内存分析
Go用struct代替其他语言的class
结构体按引用传递
Go创建结构体实例的4种方式1. 第一种方式 var t1 Teacher t1.Name="a" 2.第二种方式 var t2 Teacher = Teacher{"Aaa",445,"asdfasdf"} 3.第三种方式 var t *Teacher = new(Teacher) (*t).Name="name" t.Age=100 简写,Go编译器自动优化成*t 4.第四种方式 var t8 *Teacher = &Teacher{} t8.Name ="Abc" Go编译器自动优化成*t8 t8.Age = 100 type Teacher struct{ Name string Age int School string } func main(){ //方式1 var t1 Teacher = Teacher{} fmt.Println(t1) t1.Name = "zss" t1.Age = 32 //方式2 var t2 Teacher = Teacher{"abc",38,"ccc"} fmt.Println(t2) //方式3 var t3 *Teacher = new(Teacher) (*t3).Name ="msb" (*t3).Age = 100 fmt.Println(t3.Name) //方式4 var t4 *Teacher = &Teacher{"name",100,"school"} fmt.Println(t4) fmt.Println(t4.Name) }
Go方法和函数的区别func hanshu(函数参数)(函数返回值) { 函数体 } func (t Type) fangfa(方法参数)(方法返回值){ 方法体 }
方法的值传递和引用传递 1.方法中的结构体实例对象默认是值拷贝,在方法中对实例进行修改不会影响到原来的实例对象。如果需要在方法中对原对象进行修改,就必须传递指针类型的对象
跨包创建结构体实例
继承
接口 package main import "fmt" //接口定义 type SayHello interface{ //声明没有实现的方法 sayHello() } //接口的实现类 type Chinese struct{} //实现接口的方法 func (person Chinese) sayHello(){ fmt.Println("你好") } //接口的实现类 type American struct{} //实现接口的方法 func (person American) sayHello(){ fmt.Println("hello man") } //定义函数,接收接口结构体实例 func greet(s SayHello){ s.sayHello() } func main(){ c := Chinese{} m := American{} greet(c) greet(m) }
多态
断言
|
请发表评论