好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > Go語言struct類型介紹

Go語言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

您可能感興趣的文章:
  • Go語言中struct的匿名屬性特征實例分析
  • Go語言struct類型詳解
  • 解析Go語言編程中的struct結構

標簽:湘潭 九江 深圳 喀什 運城 楚雄 本溪 晉城

巨人網絡通訊聲明:本文標題《Go語言struct類型介紹》,本文關鍵詞  語言,struct,類型,介紹,語言,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Go語言struct類型介紹》相關的同類信息!
  • 本頁收集關于Go語言struct類型介紹的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 99久久婷婷国产一区二区三区| 色戒未删减在线播放| 娇妻之殇免费阅读| 美女被扒开内裤?进去小说| 国产高清大尺度一区二区不卡 | 解开女同学胸罩吃奶视频rd营| 欧美一级婬片A片免费看网站毒液 欧美成人做爰高潮片免费看夜魔侠 | 91蜜桃婷婷狠狠久久综合9色| 美女的裸体秘?免费直播| 最好看免费观看高清视频大全下载 | 蜜桃秘?无码一线二线三线av| 另类色视频| 精品欧洲一码二码区别在哪| 日本涩涩网站| 好爽?好紧?再深一点网站| 免费观看成人精品一二区| 91pony九色| 好爽?好紧?再深一点潮| 费渡骆闻舟第一次肉| 保定市| 天堂精品高清1区2区3区| 免费看成人AA片无码视频羞羞网| 纯欧美一级毛片免费| 午夜电影福利网| 波多野结衣在线观看一区| 18????国产?免费视频| 欧美一二三区在线| 国产一级理论免费版| 三级国产新婚之夜完整版| 3d人禽杂交欧美动漫| 大肉大捧一进一出两腿间视频| 无码精品国产va在线观看DvD| 87福利成人高清电影| 我的极品总裁老婆免费看| 他趴在我两腿中间吸我| 欠债被迫肉体偿还的视频大全| 国产9Ⅰ露脸色情按摩免费视频| 黄色网站来一个| 欧美精油spamagnet| 三男一女的伦交动态图| 局长解开了她的乳罩|