👻创作者:丶重明
👻创作时间:2025年3月7日
👻擅长领域:运维
目录
- 1.😶🌫️题目:简单的用户信息管理系统
- 2.😶🌫️代码开发
- 3.😶🌫️输出代码执行结果
- 4.😶🌫️代码解析
- 5.😶🌫️内容扩展
1.😶🌫️题目:简单的用户信息管理系统
使用Go语言构建一个简单的用户信息管理信息。
创建一个程序,能够接收用户输入的两个参数:姓名和年龄。(如果需要添加更多元素,请自行添加即可)并将这些信息存储在一个结构体中。
最终程序可以打印出这些信息。
2.😶🌫️代码开发
使用Go语言进行代码开发,以下是本实例完整代码:
package mainimport "fmt"type User struct {Name stringAge int
}func main() {var users []Uservar name stringvar age intfmt.Println("请用户输入详细信息(姓名 年龄),输入“exit”结束:")for {_, err := fmt.Scan(&name)if err != nil || name == "exit" {break}fmt.Scan(&age)users = append(users, User{Name: name, Age: age})}fmt.Println("用户:")for _, user := range users {fmt.Printf("姓名: %s, 年龄: %d\n", user.Name, user.Age)}
}
3.😶🌫️输出代码执行结果
展示了程序运行时的输入和输出情况,输入用户的姓名和年龄,输入 “exit” 结束输入,程序输出所有已输入的用户信息。
> go run .\6.gotest.go
请用户输入详细信息(姓名 年龄),输入“exit”结束:
Liming 18
李二 26
exit
用户:
姓名: Liming, 年龄: 18
姓名: 李二, 年龄: 26
4.😶🌫️代码解析
type User struct {Name stringAge int
}
Go语言中使用type
关键字定义一个新的类型,而struct
表示这是一个结构体的类型,名称为User
。
它接受两个字段,一个为Name
,类型为string
字符串;另一个为Age
,类型为int
整数。
结构体(struct
)可以把与某个实体相关的各种属性组合在一起,让数据的表示更加清晰和有条理。
_, err := fmt.Scan(&name)
fmt.Scan
是标准库fmt
包中的一个函数,功能是从标准输入(一般是键盘)读取数据,并将读取的数据按照指定的格式赋值给后续的参数。
&name
中的&
是获取地址运算符,整体表示获取变量name
的内存地址。
所以完整代码含义是从标准输入读取用户输入的内容,并存储到变量name
中,同时处理可能出现的错误。
if err != nil || name == "exit" {break}
||
是逻辑或运算符,用于连接两个布尔表达式,只要其中一个表达式的结果为true
,整个逻辑表达式的结果就为true
;如果两个表达式结果都是false
,那么整个表达式的结果为false
。
if err != nil
是判断err
变量的内容不为空,如果不为空表示出现了错误。
name == "exit"
是说name
变量的值等于字符串exit
。
如果这两个表达式有一个成立即结果为true
。
break
是一个控制流语句,当程序执行到break
时,会立即终止当前循环行为,执行循环之后的代码。
users = append(users, User{Name: name, Age: age})
User{Name: name, Age: age}
通过指定字段名和对应的值,创建一个包含姓名和年龄信息的User
结构体实例。
append
是Go的内置函数,用于向切片中添加元素。格式如下:
func append(slice []Type, elems ...Type) []Type
// slice 是要添加元素的切片,类型为[]Type
所以users
是一个存储 User 结构体实例的切片,其类型为 []User
。
5.😶🌫️内容扩展
本文只是简单可以实现输入输出用户信息,还有很多可以扩展的地方,请读者自行尝试,以下是一些扩展方向:
- 数据持久化:可以将用户信息存储到文件或数据库中,方便后续读取。
- 输入验证:确保输入的年龄是一个合理范围的整数;避免姓名为空。
- 用户操作:提供菜单功能,允许用户可进行添加、删除、修改、查看等功能。
- 搜索功能:允许用户通过姓名,可以查看到用户的所有信息。
- 用户界面:开发web界面,使查看更加直观。
同系列:
上一篇:【Go每日一练】计算 1 到 100 的累加和