golang struct 宣告和使用
go
可以宣告自定義的資料型別,組合乙個或多個型別,可以包含內建型別和使用者自定義的型別,可以像內建型別一樣使用struct
型別
struct 宣告
具體的語法
type identifier struct
例子
package main
import (
"fmt"
)type rectangle struct
func main() )
}
struct 例項化的方法
點運算子
可以使用點運算子訪問結構體中的資料值
type rectangle struct
}func main()
type rectangle struct
func main()
fmt.println(rect1)
var rect2 = rectangle
fmt.println(rect2)
rect3 := rectangle
fmt.println(rect3)
rect4 := rectangle
fmt.println(rect4)
rect5 := rectangle
fmt.println(rect5)
}
使用new
關鍵字
type rectangle struct
func main()
使用&
運算子
type rectangle struct
func main() //此時不能省略任何值
fmt.println(rect1)
var rect2 = &rectangle{}
rect2.length = 10
rect2.color = "red"
fmt.println(rect2)
var rect3 = &rectangle{}
(*rect3).breadth = 20
(*rect3).color = "blue"
fmt.println(rect3)
}
struct 練習
struct
中的tag
標籤
type employee struct
func main() `
emp1 := new(employee)
err := json.unmarshal(byte(json_str), emp1)
if err != nil
fmt.println(emp1)
emp2 := new(employee)
emp2.firstname = "john"
emp2.lastname = "lee"
emp2.city = "shanghai"
jsonstr, _ := json.marshal(emp2)
fmt.printf("%s", jsonstr)
}
輸出結果
&
內嵌的struct
型別
func main()
type employee struct
e := employee,
salary,},}
fmt.println(e.firstname,e.lastname)
fmt.println(e.age)
fmt.println(e.email)
fmt.println(e.monthlysalary[0])
fmt.println(e.monthlysalary[1])
}
輸出結果
kevin woo
為struct
新增方法
type salary struct
type employee struct
func (e employee) empinfo() string
return "-------------------"
}func main() ,
salary,},}
fmt.println(e.empinfo())
}
輸出結果
kevin woo
***************==
15000
5000
2000
***************==
16000
6000
2100
-------------------
golang struct繼承測試
記錄下golang struct的繼承關係 package main import fmt func main type a struct type b struct func a a afunc func a a bfunc func b b afunc func b b cfunc func t...
golang struct怎樣遞迴自己
type s struct乙個命名為s的結構體型別將不能再包含s型別的成員 因為乙個聚合的值不能包含它自身。該限制同樣適應於陣列。但是s型別的結構體可以包含 s指標型別的成員,這可以讓我們建立遞迴的資料結構,比如鍊錶和樹結構等。如果結構體沒有任何成員的話就是空結構體,寫作struct 它的大小為0,...
宣告和定義
宣告 向計算機介紹名字,它說,這個名字是什麼意思 而 定義 為這個名字分配 儲存空間。無論涉及到變數時還是函式時含義都一樣。無論在哪種情況下,編譯器都在 定義 處分配儲存空間。對於變數,編譯器確定這個變數佔多少儲存單元,並在記憶體中產生存放它們 的空間。對於函式,編譯器產生 並為之分配儲存空間。函式...