【GO】结构体定义练习题

定义学生结构体

题目描述

定义结构体 Student,包含:

  • 姓名 Name string
  • 年龄 Age int
  • 成绩 Score float64

创建一名学生并打印信息。

输出示例

学生信息: {张三 19 92.5}

姓名:张三 年龄:19 成绩:92.5

实现代码

Go 复制代码
package main

import "fmt"

type Student struct {
	Name  string
	Age   int
	Score float64
}

func main() {
	stu := Student{
		Name:  "张三",
		Age:   19,
		Score: 92.5,
	}

	fmt.Println("学生信息:", stu)
	fmt.Printf("姓名:%s 年龄:%d 成绩:%.1f\n", stu.Name, stu.Age, stu.Score)
}

定义书籍结构体

题目描述

定义 Book 结构体:

  • 书名 Title
  • 作者 Author
  • 价格 Price
  • 页数 Pages

创建一本书并输出。

输出示例

图书信息: {Go语言程序设计 王老师 59.8 320}

实现代码

Go 复制代码
package main

import "fmt"

type Book struct {
	Title  string
	Author string
	Price  float64
	Pages  int
}

func main() {
	b := Book{
		Title:  "Go语言程序设计",
		Author: "王老师",
		Price:  59.8,
		Pages:  320,
	}

	fmt.Println("图书信息:", b)
}

定义用户账号结构体

题目描述

定义一个结构体 User,包含以下属性:

  • 用户名 Username
  • 年龄 Age
  • 是否会员 IsVip
  • 账号是否可用 IsActive

创建用户并输出状态。

输出示例

用户信息: {张三 21 true true}

用户名: 张三

年龄: 21

是否会员: true

账号是否可用: true

实现代码

Go 复制代码
package main

import "fmt"

type User struct {
	Username string
	Age      int
	IsVip    bool
	IsActive bool
}

func main() {
	user := User{
		Username: "张三",
		Age:      21,
		IsVip:    true,
		IsActive: true,
	}

	fmt.Println("用户信息:", user)
	fmt.Println("用户名:", user.Username)
	fmt.Println("年龄:", user.Age)
	fmt.Println("是否会员:", user.IsVip)
	fmt.Println("账号是否可用:", user.IsActive)
}

定义汽车结构体

题目描述

定义 Car 结构体,包含以下属性:

  • 品牌 Brand
  • 颜色 Color

使用结构体指针创建对象,并修改颜色,最后打印修改前后的信息。

输出示例

修改前: &{比亚迪 白色}

修改后: &{比亚迪 黑色}

实现代码

Go 复制代码
package main

import "fmt"

type Car struct {
	Brand string
	Color string
}

func main() {
	// 结构体指针创建对象
	car := &Car{
		Brand: "比亚迪",
		Color: "白色",
	}

	fmt.Println("修改前:", car)

	// 通过指针修改颜色
	car.Color = "黑色"

	fmt.Println("修改后:", car)
}

定义电话结构体

题目描述

定义 Phone 结构体,包含以下属性:

  • 品牌 Brand
  • 型号 Model
  • 价格 Price

使用结构体指针创建对象,修改价格后,打印修改前后的信息。

输出示例

修改前: &{Apple iPhone 15 5999}

修改后: &{Apple iPhone 15 5799}

实现代码

Go 复制代码
package main

import "fmt"

type Phone struct {
	Brand string
	Model string
	Price int
}

func main() {
	// 指针方式创建对象
	p := &Phone{
		Brand: "Apple",
		Model: "iPhone 15",
		Price: 5999,
	}

	fmt.Println("修改前:", p)

	// 通过指针修改字段
	p.Price = 5799

	fmt.Println("修改后:", p)
}
相关推荐
web守墓人5 小时前
【go语言】gotar:使用go语言复刻tar命令,并加入7z支持,可独立运行在windows、linux、macos上
linux·macos·golang
看-是灰机5 小时前
使用go语言实现对接
linux·开发语言·后端·docker·语言模型·golang·飞书
名字还没想好☜20 小时前
Go 的 time.Ticker 陷阱:定时任务里被忽略的内存泄漏与正确关闭
java·数据库·golang·go·定时器
灯澜忆梦1 天前
Go 语言 _JSON---序列化与反序列化
开发语言·golang·json
布朗克1681 天前
Go入门到精通-22-同步原语
开发语言·后端·golang·同步原语
怒放de生命20101 天前
【web3基础】go-zero使用etcd实现服务注册与发现(四)
golang·web3·etcd·go-zero
灯澜忆梦1 天前
Go语言_文件---文件操作
开发语言·后端·golang
Wang's Blog2 天前
Go-Zero项目开发4: 用户服务搜索、详情与统一错误处理
开发语言·golang
灯澜忆梦2 天前
GO_文件处理---字符串操作
开发语言·golang
Wzx1980122 天前
RAG优化:17中RAG优化方案,那种才是最佳选择?
golang