[Golang] Struct
此篇為各筆記之整理,非原創內容,資料來源可見下方連結與文後參考資料: 👍 Structures in Go (structs) @ medium > rungo
TL;DR
// create struct on the fly
foo := struct {
Hello string
}{
Hello: "World",
}
Anonymous Field:
Promoted Field
type User struct {
firstName string
lastName string
birthDate string
createdAt time.Time
}
type Admin struct {
email string
password string
// anonymous / embedded field:直接帶入 User 裡面有的欄位
User
}
func main() {
a := Admin{}
a.firstName = "Aaron"
a.lastName = "Chen"
// 使用 anonymous/embedded field 可以直接取得該 nested struct 的值
// 這個行為稱作 Promoted
fmt.Println(a.firstName, a.lastName)
}
三種宣告 Person struct 的方式:
- 使用 new syntax:第二種和第三種寫法是一樣的
var user1 *Person // nil
user2 := &Person{} // {},user2.firstName 會是 ""
user3 := new(Person) // {},user3.firstName 會是 ""
structs 是在 GO 中的一種資料型態,它就類似 JavaScript 中的物件(Object)或是 Ruby 中的 Hash。