[Golang] Struct
此篇為各筆記之整理,非原創內容,資料來源可見下方連結與文後參考資料: 👍 Structures in Go (structs) @ medium > rungo
TL;DR
type Person struct {
firstName string
}
foo := struct {
Hello string
}{
Hello: "World",
}
三種宣告 Person struct 的方式:
- 使用 new syntax:第二種和第三種寫法是一樣的
var user1 *Person // nil
user2 := &Person{} // {},user2.firstName 會是 ""
user3 := new(Person) // {},user3.firstName 會是 ""
structs 是在 GO 中的一種資料型態,它就類似 JavaScript 中的物件(Object)或是 Ruby 中的 Hash。
定義與使用基本的 struct
建立一個 person 型別,它本質上是 struct:
// STEP 1:建立一個 person 型別,它本質上是 struct
type Person struct {
firstName string
lastName string
}
// 等同於
type Person struct {
firstName, lastName string
}
有幾種不同的方式可以根據 struct 來建立變數的:
func main() {
// 方法一:根據資料輸入的順序決定誰是 firstName 和 lastName
alex := Person{"Alex", "Anderson"}
// 直接取得 struct 的 pointer
alex := &Person{"Alex", "Anderson"}
// 方法二(建議)
alex := Person{
firstName: "Alex",
lastName: "Anderson",
}
// 方法三:先宣告再賦值
var alex Person
alex.firstName = "Alex"
alex.lastName = "Anderson"
}
輸出建立好的 struct:
fmt.Printf("%v+", alex) // {firstName:Alex lastName:Anderson}
fmt.Println(alex) // {Alex Anderson}