如何做盆栽蔬菜網(wǎng)站推廣普通話的意義30字
本文主要為Go語(yǔ)言 結(jié)構(gòu)體介紹、語(yǔ)法、使用注意及其示例。
目錄
結(jié)構(gòu)體
語(yǔ)法
語(yǔ)法示例
語(yǔ)法說(shuō)明
聲明使用
創(chuàng)建并賦值
使用指針
使用注意
總結(jié)
結(jié)構(gòu)體
C語(yǔ)言里面,我們可以使用typedef in MyInt。
在go語(yǔ)言中使用結(jié)構(gòu)體來(lái)模擬類,使用type + struct類處理。
語(yǔ)法
語(yǔ)法示例
type structName struct{fieldName typeName......
}
語(yǔ)法說(shuō)明
type和struct是Go 語(yǔ)言的關(guān)鍵字
二者組合就代表要定義一個(gè)新的結(jié)構(gòu)體類型
structName 是結(jié)構(gòu)體類型的名字
fieldName 是結(jié)構(gòu)體的字段名,而tpeName是對(duì)應(yīng)的字段類型
字段可以是零個(gè)、一個(gè)或者多個(gè)
聲明使用
var s1 Student
采用簡(jiǎn)短聲明法
s1 := Student{"張三", 20, "男", 100}
?
創(chuàng)建并賦值
創(chuàng)建學(xué)生信息的結(jié)構(gòu)體并賦值。
示例如下:
package mainimport "fmt"// c語(yǔ)言里面,我們可以使用typedef int MyInt
type MyInt int // type相當(dāng)于typedeftype Student struct {name stringage intgender stringscore float64
}func main() {var i, j MyIntj, j = 10, 20fmt.Println("i+j=", i+j)lilei := Student{name: "lilei",age: 20,gender: "男",score: 100, // 最后一個(gè)元素后面必須加上逗號(hào),如果不加上逗號(hào)則必須與}同一行}// 使用結(jié)構(gòu)體各個(gè)字段fmt.Println("lilei:", lilei.name, lilei.age, lilei.gender, lilei.score)
}
?
使用指針
示例如下:
s1 := &lilei
fmt.Println("lilei 使用指針s1.name打印:", s1.name, s1.age, s1.gender, s1.score)
fmt.Println("lilei 使用指針(*s1).name:", (*s1).name, (*s1).age, (*s1).gender, (*s1).score)
使用注意
使用結(jié)構(gòu)體變量 需要注意:
再定義期間對(duì)結(jié)構(gòu)體賦值時(shí),如果每個(gè)字段都賦值了,那么字段的名字可以省略不寫。
如果只對(duì)局部變量賦值,那么必須明確指定變量名字。
示例如下:
sunN := Student{"sunnan",18,"男",99,
}
fmt.Println(sunN)sunZ := Student{name: "sunzhen",age: 25,
}
fmt.Println(sunZ)
總結(jié)
本文主要為Go語(yǔ)言 結(jié)構(gòu)體介紹、語(yǔ)法、使用注意及其示例。