結構體基本使用
阿新 • • 發佈:2018-11-07
結構體基本使用
package main import "fmt" func main() { //順序初始化,每個成員必須賦值 var student = Student{"fan", 20, 'm'} fmt.Println("student = ", student) //指定成員初始化,沒有初始化的成員,自動賦值為0 student1 := Student{name: "fan", age: 20} fmt.Println("student1 = ", student1) //通過new函式建立Student, new函式返回一個指標student2 := new(Student) student2.name = "張三" student2.age = 20 fmt.Println("student2 = ", student2) (*student2).age = 30 fmt.Println("student2 = ", student2) //結構體比較 var student3 = Student{"張三", 20, 'm'} var student4 = Student{"張三", 20, 'm'} fmt.Println("student3 == student4 :", student3 == student4) //結構體做函式引數:值傳遞 var student5 = Student{"張三", 20, 'm'} valuePropagation(student5) fmt.Println("值傳遞:student = ", student5) reference(&student5) fmt.Println("引用傳遞:student = ", student5) } type Student struct { name string age int sex byte} //值傳遞 func valuePropagation(student Student) { student.name = "李四" //fmt.Println("值傳遞: student5 = ", student) } //引用傳遞 func reference(p *Student) { p.name = "李四" }