




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
結(jié)構(gòu)體結(jié)構(gòu)體定義初始化結(jié)構(gòu)體變量實(shí)例化結(jié)構(gòu)體01.03.02.目錄匿名結(jié)構(gòu)體04.01結(jié)構(gòu)體定義結(jié)構(gòu)體定義結(jié)構(gòu)體語(yǔ)法格式1結(jié)構(gòu)體定義結(jié)構(gòu)體的定義Go語(yǔ)言中沒(méi)有“類”的概念,通過(guò)struct來(lái)實(shí)現(xiàn)面向?qū)ο笸ǔS糜诒磉_(dá)一個(gè)事物的全部或部分屬性是一種自定義數(shù)據(jù)類型,可以封裝多個(gè)基本數(shù)據(jù)類型本質(zhì)是將零個(gè)或者多個(gè)任意類型的命名變量組合在一起的聚合數(shù)據(jù)類型每個(gè)變量叫做結(jié)構(gòu)體的成員,變量名必須唯一,可用“_”補(bǔ)位支持使用自身指針類型成員type類型名struct{
字段名字段類型字段名字段類型
......}結(jié)構(gòu)體語(yǔ)法格式類型名:標(biāo)識(shí)自定義結(jié)構(gòu)體的名稱,在同一個(gè)包內(nèi)不能重復(fù)。字段名:表示結(jié)構(gòu)體字段名,結(jié)構(gòu)體中的字段名必須唯一。字段類型:表示結(jié)構(gòu)體字段的具體類型。typeStudentstruct{stuIDintstuNamestringageint}//成員變量通常一行寫一個(gè),變量的名稱在類型的前面結(jié)構(gòu)體案列typeStudentstruct{stuID,ageintstuNamestring}//相同類型的連續(xù)成員變量可以寫在一行上。結(jié)構(gòu)體案列1結(jié)構(gòu)體定義typeStudent1struct{stuId,ageintstuName,addressstringclass,teacherstring}typeStudent2struct{stuIdintaddress,stuNamestringageintclass,teacherstring}成員變量的順序?qū)τ诮Y(jié)構(gòu)體同一性很重要相同類型的不連續(xù)成員變量不可以寫在一行上1結(jié)構(gòu)體定義02實(shí)例化結(jié)構(gòu)體結(jié)構(gòu)體的使用結(jié)構(gòu)體實(shí)例化語(yǔ)法new關(guān)鍵字2實(shí)例化結(jié)構(gòu)體結(jié)構(gòu)體的使用結(jié)構(gòu)體屬于數(shù)據(jù)類型,因此和聲明Go語(yǔ)言內(nèi)置數(shù)據(jù)類型一樣使用var關(guān)鍵字聲明結(jié)構(gòu)體類型只有當(dāng)結(jié)構(gòu)體實(shí)例化時(shí),才會(huì)真正地分配內(nèi)存即必須實(shí)例化后才能使用結(jié)構(gòu)體的字段packagemainimport"fmt"funcmain(){typepersonstruct{namestringcitystringageint8}varp1person //實(shí)例化結(jié)構(gòu)體}實(shí)例化語(yǔ)法var結(jié)構(gòu)體實(shí)例結(jié)構(gòu)體類型packagemainimport"fmt"funcmain(){varp1struct{namestring;citystring;ageint}}在定義一些臨時(shí)數(shù)據(jù)結(jié)構(gòu)等場(chǎng)景下還可以使用匿名結(jié)構(gòu)體2實(shí)例化結(jié)構(gòu)體packagemainimport"fmt"funcmain(){typepersonstruct{namestringcitystringageint8}varp1=new(person)}2實(shí)例化結(jié)構(gòu)體new關(guān)鍵字實(shí)例化語(yǔ)法結(jié)構(gòu)體實(shí)例:=new(結(jié)構(gòu)體類型)使用new實(shí)例化結(jié)構(gòu)體后,得到的是結(jié)構(gòu)體的地址;結(jié)構(gòu)體類型為指針類型通過(guò)&符號(hào)對(duì)結(jié)構(gòu)體取地址取地址的同時(shí)會(huì)將結(jié)構(gòu)體實(shí)例化03初始化結(jié)構(gòu)體變量順序初始化指定初始化結(jié)構(gòu)體普通變量結(jié)構(gòu)體指針變量3初始化結(jié)構(gòu)體變量結(jié)構(gòu)體初始化結(jié)構(gòu)體類型的值可以通過(guò)結(jié)構(gòu)體字面量來(lái)設(shè)置,即通過(guò)結(jié)構(gòu)體的成員變量來(lái)設(shè)置有兩種格式的結(jié)構(gòu)體字面量:順序初始化、指定成員初始化要求順序?yàn)槊總€(gè)成員變量指定一個(gè)值,這種格式必須記住每個(gè)成員變量的順序結(jié)構(gòu)體順序初始化通過(guò)指定部分或者全部成員變量的名稱和值來(lái)初始化結(jié)構(gòu)體變量,如果成員被忽略的話將默認(rèn)用零值結(jié)構(gòu)體指定成員初始化結(jié)構(gòu)體初始化的幾種情況結(jié)構(gòu)體定義時(shí),結(jié)構(gòu)體中的值會(huì)根據(jù)字段類型被賦予一個(gè)默認(rèn)值使用鍵值對(duì)對(duì)結(jié)構(gòu)體進(jìn)行初始化時(shí),鍵對(duì)應(yīng)結(jié)構(gòu)體的字段,值對(duì)應(yīng)該字段的初始值初始化結(jié)構(gòu)體的時(shí)候可以簡(jiǎn)寫,也就是初始化的時(shí)候不寫鍵,直接寫值3初始化結(jié)構(gòu)體變量3初始化結(jié)構(gòu)體變量packagemainimport( "fmt")funcmain(){typepersonstruct{namestringcitystringageint8}
//順序初始化,每個(gè)成員必須初始化
varp1person="Go語(yǔ)言"p1.city="深圳"p1.age=18fmt.Println(p1)//指定成員初始化,沒(méi)有初始化的成員自動(dòng)賦值為零
p2:=person{name:"Golang"}fmt.Println(p2)}運(yùn)行結(jié)果為:{Go語(yǔ)言深圳18}{Golang0}3初始化結(jié)構(gòu)體變量packagemainimport( "fmt")funcmain(){typepersonstruct{namestringcitystringageint8}
//順序初始化,每個(gè)成員必須初始化
varp1*person=&person{"Go語(yǔ)言","深圳",18}fmt.Println(*p1)//指定成員初始化,沒(méi)有初始化的成員自動(dòng)賦值為零
p2:=&person{name:"Golang"}fmt.Println(*p2)}運(yùn)行結(jié)果為:{Go語(yǔ)言深圳18}{Golang0}3初始化結(jié)構(gòu)體變量結(jié)構(gòu)體成員變量的使用結(jié)構(gòu)體普通變量定義結(jié)構(gòu)體普通變量使用(.)運(yùn)算符操作成員結(jié)構(gòu)體指針變量先定義一個(gè)普通結(jié)構(gòu)體變量s,再定義一個(gè)指針變量p1存放s的地址,通過(guò)指針操作成員:p1.Name或(*p1).Name通過(guò)new()實(shí)例化一個(gè)結(jié)構(gòu)體p2,通過(guò)指針操作成員:(*p2).Name或p2.Name3初始化結(jié)構(gòu)體變量packagemainimport"fmt"funcmain(){typepersonstruct{namestringcitystringageint8}varppersonvarp1*personp1=&p="Go語(yǔ)言"p1.city="深圳"(*p1).age=18fmt.Println(*p1)p2:=new(person)="Golang"p2.city="廣東"(*p2).age=20fmt.Println(*p2)}運(yùn)行結(jié)果為:{Go語(yǔ)言深圳18}{Golang廣東20}04匿名結(jié)構(gòu)體匿名結(jié)構(gòu)體定義匿名結(jié)構(gòu)體語(yǔ)法格式4匿名結(jié)構(gòu)體匿名結(jié)構(gòu)體的定義匿名結(jié)構(gòu)體,顧名思義,即沒(méi)有名字的結(jié)構(gòu)體,與匿名函數(shù)類似匿名結(jié)構(gòu)體無(wú)須type關(guān)鍵字就可以直接使用,匿名結(jié)構(gòu)體在創(chuàng)建的同時(shí)也要?jiǎng)?chuàng)建對(duì)象匿名結(jié)構(gòu)體的初始化和使用更加簡(jiǎn)單,無(wú)須通過(guò)type關(guān)鍵字定義,且不用寫出類型名稱結(jié)構(gòu)體實(shí)例:=struct{ //匿名結(jié)構(gòu)體定義
成員變量1類型1
成員變量2類型2 ...}{ //成員變量初始化(可選)
成員變量1:值1,
成員變量2:值2, …}結(jié)構(gòu)體語(yǔ)法格式4匿名
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 佛山到寧波中考數(shù)學(xué)試卷
- 肝炎病毒分類介紹課件
- 電子廠面試數(shù)學(xué)試卷
- 撫州9年級(jí)上冊(cè)數(shù)學(xué)試卷
- 肝膽疾病的早期預(yù)防和小手術(shù)
- 二年級(jí)期末沖刺數(shù)學(xué)試卷
- 高州市一模初中數(shù)學(xué)試卷
- 連云港市東??h招聘事業(yè)單位人員考試真題2024
- 2024年貴港市平南縣自然資源局招聘筆試真題
- 肌營(yíng)養(yǎng)不良癥的綜合護(hù)理
- 天津市部分區(qū)2023-2024學(xué)年高一學(xué)期期末生物試卷
- 人教版五年級(jí)英語(yǔ)下冊(cè)期末試卷及答案
- 二年級(jí)下冊(cè)期末無(wú)紙筆測(cè)評(píng)方案
- CJJ89-2012 城市道路照明工程施工及驗(yàn)收規(guī)程
- 花店上班勞動(dòng)合同范本共
- 2024年信息科技中考考試題庫(kù)及答案(模擬)
- 原發(fā)性肝癌教案(勿刪)
- 20G520-1-2鋼吊車梁(6m-9m)2020年合訂本
- 電梯維護(hù)保養(yǎng)規(guī)則(TSG T5002-2017)
- 義務(wù)教育數(shù)學(xué)課程標(biāo)準(zhǔn)(2022年版)解讀與案例分析
- 弘揚(yáng)教育家精神主題課件
評(píng)論
0/150
提交評(píng)論