Golang 結構體

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

一、結構體聲明和初始化:

/*聲明結構體*/type person struct {    name string    age  int}/*初始化結構體,並賦給變數 per*/per := person {name : "eagle", age : 24}

二、匿名結構體聲明和初始化

per := struct {    name string    age  int}{    name : "eagle", age : 24,}/*備忘:  (1) 匿名結構體的初始化和聲明必須合并,不能拆分開  (2) 這裡的最後一個逗號(,)必須要有,否則會報錯*/

三、結構體匿名成員聲明和初始化

/*聲明結構體*/type person struct{    string    int}/*初始化結構體,並賦給變數 per*/per := person {name : "eagle", age : 24}/*備忘:結構體內部限制成員類型不能相同,即type person struct{    string    int}per := person {"eagle", “guangdong", 24}會拋出“duplicate field string”異常資訊,GO語言系統不會聰明地認為第一個成員和第二個成員都是string類型,第三個成員是int類型*/

四、結構體嵌套

/*聲明結構體*/type person struct {    name string    age  int}type man struct {    sex  string    person}/*初始化結構體,並賦給變數 man*/man := person {sex : "男", person : person {name : "eagle", age : 24}}

五、結構體方法

import "fmt"/*聲明結構體*/type person struct{    name string    age  int}/*判斷兩個人是否名字相同,值傳遞,傳回值為 bool*/func (per person) IsEqual(anoPer person) bool {    anoPer.name = "john"    return per.name == anoPer.name}/*交換兩個人名字,引用傳遞,無傳回值*/func swap(per* person, anoPer* person) {    anoPer.name, per.name = per.name, anoPer.name}func main() {/*初始化結構體,並賦給變數 per*/perOne := person {name : "eagle", age : 24}perTwo := person {name : "john", age : 24}fmt.Println("PerOne:" + perOne.name)swap(&perOne, &perTwo)fmt.Println("PerOne:" + perOne.name)}

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.