[GO]匿名字段
package mainimport ("fmt"
)type Person struct {name stringsex byteage int
}type Student struct {Person //只有名字,沒有字段,這里student相當(dāng)于繼承了person的所有字段,就有點(diǎn)像是繼承了id intaddr string
}func main() {//來一個(gè)順序初始化var s1 Student = Student{Person{"baylor", 'm', 18}, 1, "NJ"}fmt.Println("s1 = ", s1)//再來一個(gè)自動推導(dǎo)類型s2 := Student{Person{"baylor", 'm', 18}, 1, "NJ"}fmt.Printf("s2 = %+v\n", s2) //這里是打印出詳細(xì)的方式//上面是順序自動推導(dǎo),再來一個(gè)不一樣的s3 := Student{Person:Person{name: "baylor", age:18}, id:3}fmt.Printf("s3 = %+v\n", s3)
}
執(zhí)行的結(jié)果
s1 = {{baylor 109 18} 1 NJ} s2 = {Person:{name:baylor sex:109 age:18} id:1 addr:NJ} s3 = {Person:{name:baylor sex:0 age:18} id:3 addr:}一定要記住的是Person也是一個(gè)結(jié)構(gòu)體,那么在通過匿名字段進(jìn)行初始化的時(shí)候一定要指定Person,造成不要寫成
s1 := Student{"baylor", 'm', 18, 1, "NJ"}?====================華麗的分隔線?====================
匿名函數(shù)成員的操作
package mainimport ("fmt" )type Person struct {name stringsex byteage int }type Student struct {Person //只有名字,沒有字段,這里student相當(dāng)于繼承了person的所有字段,就有點(diǎn)像是繼承了id intaddr string }func main() {var s1 Student = Student{Person{"baylor", 'm', 18}, 1, "NJ"}//進(jìn)行一個(gè)取值fmt.Println("s1.name = ", s1.name)//進(jìn)行賦值s1.name = "mike"s1.sex = 'm's1.age = 1s1.id = 1s1.addr = "NJ"fmt.Println("s1 = ", s1)//進(jìn)行匿名字段的賦值s1.Person = Person{"yoyo", 'f', 2}fmt.Println("s1 = ", s1) }執(zhí)行的結(jié)果
s1.name = baylor s1 = {{mike 109 1} 1 NJ} s1 = {{yoyo 102 2} 1 NJ}?
轉(zhuǎn)載于:https://www.cnblogs.com/baylorqu/p/9614992.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
- 上一篇: zxing二维码的生成与解码(C#)
- 下一篇: JAVA 蓝桥杯 第十届 省赛 C组 之