结构体作为类
本课属于 Coddy GO 学习旅程的“面向对象编程”单元。第 6 课,共 107 课。
Go 中的结构体与其他语言中的类作用相同。它们将相关数据组合到一个类型中。
定义一个包含多种字段类型的结构体
type Car struct {
Brand string
Model string
Year int
Price float64
}使用字段名创建实例
car := Car{
Brand: "Toyota",
Model: "Camry",
Year: 2023,
Price: 28000.50,
}访问和修改字段
fmt.Println(car.Brand) // Toyota
fmt.Println(car.Year) // 2023
car.Price = 27000.00 // 修改字段
fmt.Println(car.Price) // 27000结构体可以包含其他结构体
type Engine struct {
Horsepower int
FuelType string
}
type Car struct {
Brand string
Model string
Engine Engine
}
car := Car{
Brand: "Ford",
Model: "Mustang",
Engine: Engine{Horsepower: 450, FuelType: "Gasoline"},
}
fmt.Println(car.Engine.Horsepower) // 450结构体将相关字段组合在一起。你可以使用点运算符访问字段,也可以将结构体嵌套在其他结构体中,以构建复杂的数据模型。
挑战
中等定义一个包含以下字段的 Profile 结构体:
Name:字符串Email:字符串Age:intRole:字符串
亲手试试
package main
import "fmt"
func main() {
var name, email, role string
var age int
fmt.Scan(&name, &email, &age, &role)
p := Profile{
Name: name,
Email: email,
Age: age,
Role: role,
}
fmt.Printf("Name: %s\n", p.Name)
fmt.Printf("Email: %s\n", p.Email)
fmt.Printf("Age: %d\n", p.Age)
fmt.Printf("Role: %s\n", p.Role)
}这节课包含一个小测验。开始学习即可作答,并记录你的进度。
面向对象编程中的所有课
自己练习: Go 在线编译器