本篇內容介紹了“Go語言的指針怎么用”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
結構體定義需要使用 type 和 struct 語句
struct 語句定義一個新的數據類型,結構體中有一個或多個成員
type 語句設定了結構體的名稱
結構體的格式如下
type struct_variable_type struct { member definition member definition ... member definition }
一旦定義了結構體類型,它就能用于變量的聲明,語法格式如下
variable_name := structure_variable_type {value1, value2...valuen}
或者
variable_name := structure_variable_type { key1: value1, key2: value2..., keyn: valuen}
package main import "fmt" type Persion struct { name string sex string age int id_card int } func main() { //創建一個新的結構體 fmt.Println(Persion{"zhangsan", "男", 20, 123412424}) //使用key:value格式 fmt.Println(Persion{name: "lisi", sex: "女", age: 18, id_card: 133654623}) //忽略的字段為0或空 fmt.Println(Persion{name: "wangwu", id_card: 21352365}) }
輸出結果
{zhangsan 男 20 123412424}
{lisi 女 18 133654623}
{wangwu 0 21352365}
如果要訪問結構體成員,需要使用點號.操作符,格式為:
結構體.成員名"
結構體類型變量使用 struct 關鍵字定義,實例如下:
package main import "fmt" func main() { //結構體聲明 type Persion struct { name string age int sex string id int } //結構體類型的變量 var ( Persion1 Persion //聲明 Persion1 為 Persion 類型 Persion2 Persion //聲明 Persion2 為 Persion 類型 ) //給prison1賦值 Persion1.name = "lisi" Persion1.sex = "man" Persion1.age = 30 Persion1.id = 56341153 //給prison2賦值 Persion2.name = "wangwu" Persion2.sex = "woman" Persion2.age = 18 Persion2.id = 78238232 fmt.Println(Persion1) fmt.Println(Persion2) }
輸出結果如下
{lisi 30 man 56341153}
{wangwu 18 woman 78238232}
結構體也可以作為參數傳遞給函數,可以解決一些代碼的冗余問題,簡化代碼
示例
package main import "fmt" //結構體聲明 type Persion struct { name string age int sex string id int } func main() { //結構體類型的變量 var ( Persion1 Persion //聲明 Persion1 為 Persion 類型 Persion2 Persion //聲明 Persion2 為 Persion 類型 ) //給prison1賦值 Persion1.name = "lisi" Persion1.sex = "man" Persion1.age = 30 Persion1.id = 56341153 //給prison2賦值 Persion2.name = "wangwu" Persion2.sex = "woman" Persion2.age = 18 Persion2.id = 78238232 //使用函數傳遞結構體 printInfo(Persion1) fmt.Println("------------------") printInfo(Persion2) } //函數定義結構體為形式參數,進行傳入 func printInfo(p Persion) { fmt.Println("姓名: ", p.name) fmt.Println("年齡: ", p.age) fmt.Println("性別: ", p.sex) fmt.Println("身份證: ", p.id) }
輸出結果如下
姓名: lisi
年齡: 30
性別: man
身份證: 56341153
------------------
姓名: wangwu
年齡: 18
性別: woman
身份證: 78238232
可以定義指向結構體的指針類似于其他指針變量,格式如下
var struct_pointer *Persion
以上定的指針變量可以存儲結構體變量的地址,查看結構體變量的地址,可以將&符合放置于結構體變量前
struct_pointer = &Persion1
使用結構體指針訪問結構體成員,可以使用.操作符
struct_pointer.title
package main import "fmt" //結構體聲明 type Persion struct { name string age int sex string id int } func main() { //結構體類型的變量 var ( Persion1 Persion //聲明 Persion1 為 Persion 類型 Persion2 Persion //聲明 Persion2 為 Persion 類型 ) //給prison1賦值 Persion1.name = "lisi" Persion1.sex = "man" Persion1.age = 30 Persion1.id = 56341153 //給prison2賦值 Persion2.name = "wangwu" Persion2.sex = "woman" Persion2.age = 18 Persion2.id = 78238232 //使用函數傳遞結構體的地址 printInfo(&Persion1) fmt.Println("------------------") printInfo(&Persion2) } //定義結構體指針形參進行傳入 func printInfo(p *Persion) { fmt.Println("姓名: ", p.name) fmt.Println("年齡: ", p.age) fmt.Println("性別: ", p.sex) fmt.Println("身份證: ", p.id) }
輸出結果如下
姓名: lisi
年齡: 30
性別: man
身份證: 56341153
------------------
姓名: wangwu
年齡: 18
性別: woman
身份證: 78238232
“Go語言的指針怎么用”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。