Golang結構體
結構體是由一系列具有相同型別或不同型別的資料構成的資料集合
在golang結構體可以為不同項定義不同的資料型別
1.結構體格式:
type struct_variable_type struct {
member definition
member definition
...
member definition
}
2.變數宣告:
variable_name := structure_variable_type {value1, value2...valuen}
或
variable_name := structure_variable_type { key1: value1, key2: value2..., keyn: valuen}
代碼示例:
package main
import "fmt"
//結構體定義
type Student struct{
name string
age int
height int
}
func main() {
// 創建一個新的結構體
x1 :=Student{"Tom",18,182}
fmt.Println(x1)
//可以用key:value形式
x2 :=Student{name:"Bob",age:14,height:152}
fmt.Println(x2)
//沒有定義的欄位為“空值”
x3 :=Student{}
fmt.Println(x3)
}
運行結果為:
{Tom 18 182}
{Bob 14 152}
{ 0 0}
訪問結構體成員
結構體.成員名稱
不僅可以訪問結構體成員,還可以重新賦值
package main
import "fmt"
//結構體定義
type Student struct{
name string
age int
height int
}
func main() {
// 創建一個新的結構體
x1 :=Student{"Tom",18,182}
fmt.Println(x1)
fmt.Println(x1.name)
fmt.Println(x1.age)
fmt.Println(x1.height)
x1.name="Bob"
x1.age=22
x1.height=176
fmt.Println("After change!")
fmt.Println(x1)
fmt.Println(x1.name)
fmt.Println(x1.age)
fmt.Println(x1.height)
}
運行結果為:
{Tom 18 182}
Tom
18
182
After change!
{Bob 22 176}
Bob
22
176
結構體作為函式引數
像其他資料型別一樣,將結構體型別作為引數傳遞給函式,訪問它的成員
package main
import "fmt"
//結構體定義
type Student struct{
name string
age int
height int
}
func main() {
var xx Student
xx.name="Lili"
xx.age=17
xx.height=165
showstruct(xx)
}
func showstruct(stu Student){
fmt.Println(stu)
fmt.Println(stu.name)
fmt.Println(stu.age)
fmt.Println(stu.height)
}
運行結果為:
{Lili 17 165}
Lili
17
165
結構體指標
定義指向結構體的指標:
package main
import "fmt"
//結構體定義
type Student struct{
name string
age int
height int
}
func main() {
xx :=Student{"Bob",17,178}
var stu *Student
stu=&xx
fmt.Println(xx)
fmt.Println(*stu)
fmt.Println(stu.name)
fmt.Println(stu.age)
fmt.Println(stu.height)
}
運行結果為:
{Bob 17 178}
{Bob 17 178}
Bob
17
178
結構體指標作為函式引數:
package main
import "fmt"
//結構體定義
type Student struct{
name string
age int
height int
}
func main() {
xx :=Student{"Bob",17,178}
showstruct(&xx)
}
func showstruct(stu *Student){
fmt.Println(*stu)
fmt.Println(stu.name)
fmt.Println(stu.age)
fmt.Println(stu.height)
}
運行結果為:
{Bob 17 178}
Bob
17
178
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/278522.html
標籤:區塊鏈
下一篇:C++--類和物件中篇
