Go語言基礎 匿名組合

2021-09-11 12:04:29 字數 1393 閱讀 3847

go語言中沒有封裝,繼承,多型的概念,但是可以通過別的方式來實現這些特徵

package main

import "fmt"

// 定義乙個person類

type person struct

type student struct

func main

() ,1,"bj"}

//自動推導型別

s2 := student,1, "22"}

//指定成員初始化,沒有初始化的成員會自動賦值為0

s3 := student

}複製**

func main

() , 4 , "bj"}

fmt.printf(s1.name , s1.*** ,s1.age ,s1.id , s1.addr)

//單獨賦值

s1.name = "ricky"

s1.*** = 'm'

s1.age = 22

s1.id = 666

s1.addr = "nj"

//整體賦值

s1.person = person }

複製**

package main

import "fmt"

// 定義乙個person類

type person struct

type student struct

func main

()

複製**

package main

import "fmt"

type mystr string //自定義型別,給乙個型別改名 別名

// 定義乙個person類

type person struct

type student struct

複製**

package main

import "fmt"

type person struct

type student struct

func main

() ,1, "22"}

fmt.println(s1.name,s1.age,s1.id,s1.addr)

//先定義變數

var s2 student

s2.person = new(person) //分配空間

s2.name = "yoyo"

s2.*** = 'm'

s2.age = 18

fmt.println(s1.name,s1.age,s1.id,s1.addr)

}複製**

Go語言程式設計(十三)之匿名組合

確切的說,go語言也提供了繼承,但是採用了組合的文法,所以我們將其稱為匿名組合 type base struct func base base foo func base base bar type foostruct func foo foo bar 以上 定義了乙個base類 實現了foo 和b...

go語言基礎 匿名結構體

結構體和函式一樣,也可以使用匿名結構體 使用匿名結構體也要直接賦值給變數,不要沒法使用 匿名結構體和匿名字段 沒有名字的結構體 a struct func type a struct b a b.string,b.int 匿名字段可以理解為欄位名和字段型別一致 packagemain import ...

十九 Go基礎程式設計 物件導向 匿名組合

一般情況下,定義結構體的時候是欄位名與其型別一一對應,實際上go支援只提供型別,而不寫欄位名的方式,也就是匿名字段,也稱為嵌入字段。當匿名欄位也是乙個結構體的時候,那麼這個結構體所擁有的全部欄位都被隱式地引入了當前定義的這個結構體。人 type person struct 學生 type stude...