【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)
}
相关推荐
ttwuai2 小时前
Go后台管理系统开源项目有哪些?如何按交付形态筛掉不合适的仓库
开发语言·golang·开源
报错小能手3 小时前
GO面试题 Go基础面试题
golang
皓月盈江3 小时前
Go读写TXT文件
开发语言·后端·golang·go·读写txt文件·bufio·go读写txt
JavaPub-rodert5 小时前
开源一套 Go + React 后台管理系统,支持 RBAC 权限管理、Docker 一键部署!
react.js·golang·开源
FfHUCisI5 小时前
pprof 火焰图(Flame Graph)阅读与热点代码重构实战
架构·golang
JWASX20 小时前
Java 转 go 学习 - kitex(5)
学习·golang
谢亮_vipxieliang20 小时前
Go net/http 标准库深入——构建生产级 HTTP 服务
http·golang·iphone
小小龙学IT1 天前
Go 语言 gRPC(grpc-go)深度解析
rpc·架构·golang·go
microrain1 天前
KNX 现场没有寄存器表:SagooIoT 楼宇驱动插件的组地址、DPT 与隧道
物联网·golang·开源·sagooiot
Duang007_1 天前
生产可观测性:从“系统慢“到“根因“的完整链路(Go / TypeScript)
后端·python·golang·typescript·prometheus