亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Golang > 正文

Go語言struct類型介紹

2020-04-01 19:22:23
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了Go語言struct類型介紹,本文講解了struct的2種聲明方式,struct的匿名字段等內容,需要的朋友可以參考下
 

struct

我們可以聲明新的類型,作為其它類型的屬性或字段容器。
如,創建一個自定義類型person代表一個人的實體。這個實體擁有屬性:姓名&年齡。這樣的類型我們稱之為struct。

復制代碼代碼如下:

type person struct{
        name string
        age int
}

 

 

復制代碼代碼如下:

var P person // P 現在就是 person 類型的變量了
P.name = "Astaxie" //  賦值 "Astaxie" 給 P 的 name 屬性 .
P.age = 25 //  賦值 "25" 給變量 P 的 age 屬性
fmt.Printf("The person's name is %s", P.name) //  訪問 P 的 name 屬性 .

 


除了上面這種P的聲明使用之外,還有其他兩種聲明使用方式

1、按照順序提供初始化值

復制代碼代碼如下:

P := person{"Liuxinming", 28}

 

2、通過field:value的方式初始化,這樣可以任意順序

 

復制代碼代碼如下:

P := person{age:28, name:"Liuxinming"}

 

舉例:

 

復制代碼代碼如下:

package main

 

import "fmt"

//聲明一個新的類型
type person struct {
 name string
 avg  int
}

//比較兩個人的年齡,返回年齡大的那個人,并且返回年齡差
//struct 也是傳值的
func older(p1, p2 person) (person, int) {
 if p1.avg > p2.avg { //比較p1和p2年齡
  return p1, p1.avg - p2.avg
 }
 return p2, p2.avg - p1.avg
}

func main() {
 var tom person
 //賦值初始化
 tom.name, tom.avg = "Tom", 18

 //兩個字段都寫清楚的初始化
 bob := person{avg: 25, name: "Bob"}

 //按照struct定義順序初始化
 paul := person{"Paul", 43}

 tb_Older, tb_diff := older(tom, bob)
 tp_Older, tp_diff := older(tom, paul)
 bp_Older, bp_diff := older(bob, paul)

 fmt.Printf("Of %s and %s, %s is older by %d years/n",
  tom.name, bob.name, tb_Older.name, tb_diff)
 fmt.Printf("Of %s and %s, %s is older by %d years/n",
  tom.name, paul.name, tp_Older.name, tp_diff)
 fmt.Printf("Of %s and %s, %s is older by %d years/n",
  bob.name, paul.name, bp_Older.name, bp_diff)
}

 

輸出結果如下:

 

復制代碼代碼如下:

Of Tom and Bob, Bob is older by 7 years
Of Tom and Paul, Paul is older by 25 years
Of Bob and Paul, Paul is older by 18 years

 

struct的匿名字段

我們上面介紹了如何定義一個struct,定義的時候是字段名與其類型一一對應,實際上Go支持只提供類型,而不寫字段名的方式,也就是匿名字段,也稱為嵌入字段。

當匿名字段是一個struct的時候,那么這個struct所擁有的全部字段都被隱式地引入了當前定義的這個struct:

復制代碼代碼如下:

// struct2.go
package main

 

import (
 "fmt"
)

type Human struct {
 name   string
 age    int
 weight int
}
type Student struct {
 Human      //匿名字段,那么默認struct就包含了Human所有字段
 speciality string
}

func main() {
 //初始化一個學生
 mark := Student{Human{"Mark", 25, 100}, "Computer Science"}

 //訪問相應的字段
 fmt.Println("His name is ", mark.name)
 fmt.Println("His age is ", mark.age)
 fmt.Println("His weight is ", mark.weight)
 fmt.Println("His speciality is ", mark.speciality)

 //修改對應的信息
 mark.speciality = "AI"
 fmt.Println("Mark changed his speciality")
 fmt.Println("His speciality is ", mark.speciality)
 //  修改他的年齡信息
 fmt.Println("Mark become old")
 mark.age = 46
 fmt.Println("His age is", mark.age)
 //  修改他的體重信息
 fmt.Println("Mark is not an athlet anymore")
 mark.weight += 60
 fmt.Println("His weight is", mark.weight)
}

 

輸出結果:

 

復制代碼代碼如下:

His name is  Mark
His age is  25
His weight is  100
His speciality is  Computer Science
Mark changed his speciality
His speciality is  AI
Mark become old
His age is 46
Mark is not an athlet anymore
His weight is 160

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩精品视频在线观看免费| 91人人爽人人爽人人精88v| 98精品国产高清在线xxxx天堂| 国产精品久久二区| 欧美麻豆久久久久久中文| 久久久久久中文| 欧美理论电影在线播放| 最近更新的2019中文字幕| 91国内揄拍国内精品对白| 久久久久久尹人网香蕉| 日本精品视频在线| 亚洲精品中文字幕av| 国内成人精品一区| 欧美视频免费在线| 国产精品久久久久久久app| 欧美一级黄色网| 亚洲天堂av在线免费观看| 亚洲a级在线观看| 一区二区三区精品99久久| 国产精品99久久99久久久二8| 亚洲国产精品成人一区二区| 欧美电影在线播放| 蜜月aⅴ免费一区二区三区| 亚洲最大av网| 色中色综合影院手机版在线观看| 亚洲精品www久久久久久广东| 国产精品欧美日韩久久| 98视频在线噜噜噜国产| 九九视频这里只有精品| 亚洲欧美成人一区二区在线电影| 亚洲精品视频二区| 国产欧美中文字幕| 久久精品亚洲热| 欧美成人国产va精品日本一级| 国产精品一区二区在线| 欧美日本精品在线| 久久五月情影视| 欧美在线性爱视频| 成人性生交大片免费看视频直播| 疯狂做受xxxx高潮欧美日本| 91在线观看欧美日韩| 欧美性videos高清精品| 91av在线播放视频| 青青草国产精品一区二区| 国产一区二区欧美日韩| 久久久久久久久网站| 久久久欧美一区二区| 91精品久久久久久久久不口人| 精品国产成人av| 美女福利精品视频| 久久艹在线视频| 欧美二区乱c黑人| 国产精品27p| 亚洲欧美综合另类中字| 综合网日日天干夜夜久久| 国产精品免费电影| 欧美成人午夜视频| 国内精品一区二区三区| 啪一啪鲁一鲁2019在线视频| 日韩精品欧美激情| 亚洲午夜精品久久久久久久久久久久| 欧美激情成人在线视频| 一个色综合导航| 久久99精品久久久久久噜噜| 欧美激情视频一区二区三区不卡| 国产午夜精品视频免费不卡69堂| 久久人体大胆视频| 日韩美女激情视频| 国内精品中文字幕| 最新国产精品拍自在线播放| 久久久久久九九九| 国产精品福利片| 久久这里有精品视频| 欧美综合在线第二页| 国产99久久精品一区二区 夜夜躁日日躁| 欧美激情女人20p| 国产成人久久久精品一区| 欧美高清视频免费观看| 久久这里只有精品视频首页| 久久精品国产欧美亚洲人人爽| 国产日韩av在线播放| 日韩免费av在线| 亚洲欧美日韩国产中文专区| 欧美一区二粉嫩精品国产一线天| 国产美女91呻吟求| 精品久久在线播放| 一区二区av在线| 国产91在线高潮白浆在线观看| 久久久精品视频成人| 日韩大陆毛片av| 欧美性猛交xxxx富婆弯腰| 欧美性猛交xxxx偷拍洗澡| 欧美人成在线视频| 一区二区三区高清国产| 欧美一级大片视频| 川上优av一区二区线观看| 97香蕉超级碰碰久久免费软件| 久久久久久久久综合| 久久国产精品首页| 亚洲第一级黄色片| 91在线|亚洲| 久久中文字幕在线| 麻豆国产精品va在线观看不卡| 久久色精品视频| 精品视频久久久| 97超级碰碰人国产在线观看| 国产成人亚洲精品| 精品国产区一区二区三区在线观看| 中日韩美女免费视频网站在线观看| 欧美激情视频播放| 欧美视频中文字幕在线| 国产一区私人高清影院| 欧美日韩在线观看视频小说| 欧美日本在线视频中文字字幕| 久久激情视频免费观看| 欧美在线观看网址综合| 日韩成人在线播放| 欧美激情va永久在线播放| 伦理中文字幕亚洲| 深夜福利国产精品| 亚洲欧美日韩中文在线| 一本色道久久88精品综合| 大伊人狠狠躁夜夜躁av一区| 欧美一级黄色网| 日韩欧美成人精品| 亚洲男人7777| 日韩美女在线观看| 91免费看视频.| 热99精品只有里视频精品| 亚洲精品视频中文字幕| 亚洲精品中文字幕av| 中文字幕欧美国内| 亚洲欧美综合区自拍另类| 97精品久久久中文字幕免费| 精品高清美女精品国产区| 97视频com| 国产精品中文字幕在线| 亚洲图片制服诱惑| 91国语精品自产拍在线观看性色| 亚洲国产成人精品一区二区| 亚洲成人国产精品| 国产91精品久久久久久久| 国产中文字幕91| 中国人与牲禽动交精品| 一区二区在线免费视频| 国产日韩欧美夫妻视频在线观看| 国产精品女人久久久久久| 久久久久久久97| 国产精品亚洲视频在线观看| 中文字幕av一区| 久久国产精品久久久久久久久久| 欧美视频不卡中文| 欧美另类69精品久久久久9999| 成人免费视频网址| 成人黄色av播放免费| 精品毛片三在线观看| 国产v综合v亚洲欧美久久| 亚洲在线视频福利| 2019亚洲男人天堂| 97久久精品视频| 亚洲第一精品夜夜躁人人躁| 国产女精品视频网站免费| 俺也去精品视频在线观看| 国产亚洲精品美女久久久|