Menu
CoddyTech

结构体作为类

本课属于 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

结构体将相关字段组合在一起。你可以使用点运算符访问字段,也可以将结构体嵌套在其他结构体中,以构建复杂的数据模型。

challenge icon

挑战

中等

定义一个包含以下字段的 Profile 结构体:

  • Name:字符串
  • Email:字符串
  • Age:int
  • Role:字符串

亲手试试

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)
}
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

面向对象编程中的所有课

自己练习: Go 在线编译器