当前位置: 首页 > news >正文

【Go每日一练】构建一个简单的用户信息管理系统

👻创作者:丶重明
👻创作时间:2025年3月7日
👻擅长领域:运维

目录

  • 1.😶‍🌫️题目:简单的用户信息管理系统
  • 2.😶‍🌫️代码开发
  • 3.😶‍🌫️输出代码执行结果
  • 4.😶‍🌫️代码解析
  • 5.😶‍🌫️内容扩展

1.😶‍🌫️题目:简单的用户信息管理系统

使用Go语言构建一个简单的用户信息管理信息。

创建一个程序,能够接收用户输入的两个参数:姓名和年龄。(如果需要添加更多元素,请自行添加即可)并将这些信息存储在一个结构体中。

最终程序可以打印出这些信息。

2.😶‍🌫️代码开发

使用Go语言进行代码开发,以下是本实例完整代码:

package main

import "fmt"

type User struct {
	Name string
	Age  int
}

func main() {
	var users []User
	var name string
	var age int

	fmt.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 string
    Age  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 的累加和

相关文章:

  • Smart contract -- 自毁合约
  • 【动手实验】TCP 连接的建立与关闭抓包分析
  • 【Pandas】pandas Series asfreq
  • 【Axure视频教程】中继器表格——控制开关按钮
  • spark常见的submit参数
  • HeidiSQL 12.0 64位便携版使用指南:从下载到数据库管理的完整步骤
  • 个人学习编程(3-11) 刷题
  • 《哪吒2》中的“家”本质:中国式亲情的三重镜像与觉醒
  • Spring
  • SPFA算法——负权图且没有负环
  • Python基于深度学习的电影评论情感分析可视化系统(全新升级版)【附源码、参考文档】
  • 【BUG】类文件具有错误的版本 61.0, 应为 52.0,请删除该文件或确保该文件位于正确的类路径子目录中。
  • ubuntu安装与卸载
  • python机器学习tensorflow库安装与使用
  • 一次解决Andriod Studio Build Gradle很慢或报错下载失败等问题
  • Python基于windows操作RocketMQ
  • Git基础篇 - Linux(CentOS)源码安装Git实例
  • 【视频】从USB摄像头推流至视频服务器(SRS、mediamtx)
  • json中文编码问题
  • 01LVGL图形界面库
  • “80后”赵亮出任上海普陀区委副书记
  • 国家主席习近平同普京总统举行小范围会谈
  • 马克思主义理论研究教学名师系列访谈|曾瑞明:想通了才可能认准,认准了才能做好
  • 姜再冬大使会见巴基斯坦副总理兼外长达尔
  • 宁波市人大常委会审议生育工作报告,委员建议学前教育免费
  • 王耀庆化身“罗朱”说书人,一人挑战15个角色