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.方法中的结构体实例对象默认是值拷贝,在方法中对实例进行修改不会影响到原来的实例对象。如果需要在方法中对原对象进行修改,就必须传递指针类型的对象
跨包创建结构体实例
继承