Создание экземпляра с использованием :=
Аналогично, мы можем использовать :=
для создания экземпляра структуры:
package main
import "fmt"
type Store struct {
productName string
productType string
price int
}
func main() {
lan3 := Store{}
lan3.productType = "Fresh Food"
lan3.productName = "Taiwanese Meatballs"
lan3.price = 20
fmt.Printf("lan3:\n\t%s\n\t%s\n\t%d\n",
lan3.productType, lan3.productName, lan3.price)
}
Запустите программу:
go run struct.go
Результат выглядит следующим образом:
lan3:
Fresh Food
Taiwanese Meatballs
20
Мы можем объединить инициализацию и присваивание значений, вот так:
package main
import "fmt"
type Store struct {
productName string
productType string
price int
}
func main() {
lan3 := Store{
productType: "Fresh Food",
productName: "Taiwanese Meatballs",
price: 4,
}
fmt.Printf("lan3:\n\t%s\n\t%s\n\t%d\n",
lan3.productType, lan3.productName, lan3.price)
}
Запустите программу:
go run struct.go
Результат выглядит следующим образом:
lan3:
Fresh Food
Taiwanese Meatballs
4
Когда нам нужно присвоить значения всем полям структуры, мы можем записать значения в порядке, в котором они определены в структуре.
Например, мы переписываем экземпляр lan3
следующим образом:
lan3 := Store{
"Fresh Food",
"Taiwanese Meatballs",
4,
}
Примечание: Этот синтаксис подходит только для случаев, когда значения присваиваются всем полям.