package main
import "fmt"
// 定义老帅结构体,将老师中的各个属性统一放入结构体中管理:
type Teacher struct {
//变量名字大写外界可以访问这个属性
Name string
Age int
School string
}
func structAssignment1(){
//创建老师结构体的实例、对象、变量:
var t Teacher = Teacher{}
fmt.Println(t)
t.Name ="赵册珊"
t.Age = 31
t.School="黑龙江大学"
fmt.Println("t",t)
var t1 Teacher = Teacher{"赵册5",31,"黑龙江大学"}
fmt.Println("t1",t1)
}
func structAssignment2(){
//创建老师结构体的实何、对象、变景;
var t1 Teacher // 类似 var a int
fmt.Println(t1)//在未赋值时默认值:{ 0 }
t1.Name = "马主兵"
t1.Age = 45
t1.School ="清华大学"
fmt.Println(t1)
fmt.Println(t1.Age + 10)
}
func structAssignment3(){
//创建老师结构体的实例、对象、变量:
var t *Teacher = new(Teacher)
//t是指针,t其实指间的就是地址,应该给这个地址的指向的对象的字段威值
(*t).Name = "马士兵"
(*t).Age = 45 //*的作用;根据地址取值
//为了符合程产员的编程习惯。go挺供了简化的赋伯方式:
t.School = "清华大学" //go编译器底层对t.School转化(*t).School = "清华大学"
fmt.Println(*t)
}
func structAssignment4(){
//创建老师结构体的实例、对象、变量:
var t1 *Teacher = &Teacher{"马士:兵",46,"洁华大学"}
fmt.Println(*t1)
var t *Teacher = &Teacher{}
(*t).Name = "写士兵"
(*t).Age = 45
t.School ="活华大学"
fmt.Println(*t)
}
func main() {
//structAssignment1()
//structAssignment2()
structAssignment3()
//structAssignment4()
}