golang 入門之struct繼承,嵌套

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
package mainimport "fmt"type Jocongmin struct{Name stringHome stringWant string}func (j *Jocongmin) SayName() string{  //這裡定義的方法是拓展方法,是對Jocongmin這個struct的繼承,也就是struct多了一個Say..方法,可以通過Jocongmin這個struct執行個體來調用return "我的名字是"+j.Name}func (j *Jocongmin) SayHome() string{return "我的家在"+j.Home}func (j *Jocongmin) SayWant() string{return "我的喜愛是"+j.Want}func main(){var jocongmin Jocongminjocongmin.Name="周聰明"jocongmin.Home="福建省"jocongmin.Want="money"fmt.Println(jocongmin.SayName()) //調用了struct的方法fmt.Println(jocongmin.SayHome())fmt.Println(jocongmin.SayWant())}

  2.struct的嵌套

package mainimport "encoding/json"import "fmt"import "strconv"import ("github.com/drone/routes""net/http")type ResInfo struct {  //定義一個struct,然後這個struct裡面有哪些子物件Data YearDataStructMsg  string}type YearDataStruct struct {MouthAll []MouthStruct  //定義一個類型為數組的對象,然後這個數組的元素類型為某種structSum      DetailStructAverage  DetailStructQuarter  []QuarterStruct}type DetailStruct struct {One   intTwo   intThree int}type QuarterStruct struct {DetailStruct   //可以嵌套複合其他類型的struct,這樣就繼承下了其他struct的子物件QuarterNum int}type MouthStruct struct {Mouth        intPartmentItem []ItemArrStruct}type ItemArrStruct struct {PartMent stringDetailStruct}func cross(w http.ResponseWriter) {w.Header().Set("Access-Control-Allow-Origin", "*")             //允許訪問所有域w.Header().Add("Access-Control-Allow-Headers", "Content-Type") //header的類型w.Header().Set("content-type", "application/json")             //返回資料格式是json}func main() {fmt.Println("正在啟動WEB服務...")var mux *routes.RouteMux = routes.New()mux.Get("/test", DataSend)//http.Handle("/", mux)http.ListenAndServe(":8088", mux)fmt.Println("服務已停止")}func DataSend(w http.ResponseWriter, r *http.Request) {var data YearDataStructfor i := 1; i < 13; i++ {var partMent []ItemArrStructfor t := 1; t < 4; t++ {partMent = append(partMent, ItemArrStruct{PartMent: "" + strconv.Itoa(t) + "abc",DetailStruct: DetailStruct{  //繼承其他struct的子物件的賦值方法是這樣的,one two 之類的和partment是同一等級One:   45,Two:   23,Three: 3432,},})}data.MouthAll = append(data.MouthAll, MouthStruct{Mouth:        i,PartmentItem: partMent,})}for i := 1; i <= 4; i++ {data.Quarter = append(data.Quarter, QuarterStruct{DetailStruct: DetailStruct{One:   4324,Two:   23423,Three: 4324234,},QuarterNum: i,})}data.Sum = DetailStruct{One:   4546,Two:   454,Three: 454,}data.Average = DetailStruct{One:   4546,Two:   454,Three: 465465,}var res ResInfores.Data = datares.Msg = "right"resJson, _ := json.Marshal(res)fmt.Fprintln(w, string(resJson))}

  

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.