【Go每日一练】构建一个简单的用户信息管理系统
👻创作者:丶重明
👻创作时间: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 的累加和
相关文章:
【Go每日一练】构建一个简单的用户信息管理系统
👻创作者:丶重明 👻创作时间:2025年3月7日 👻擅长领域:运维 目录 1.😶🌫️题目:简单的用户信息管理系统2.😶🌫️代码开发3.😶&a…...
PathRAG:通过图剪枝的方法优化Graph-based RAG的性能方法浅析
PathRAG 也是一种新型 Graph-based RAG 方法,通过检索索引图中的关键关系路径,减少噪声并优化 LLM 提示。其核心创新在于基于流的剪枝算法和路径为基础的提示策略,特别适用于捕捉复杂数据集中的关系。(其实可以看做相比GraphRAG假…...
ElementUI 级联选择器el-cascader启用选择任意一级选项,选中后关闭下拉框
1、启用选择任意一级选项 在 el-cascader 标签上加上配置项: :props"{ checkStrictly: true }"例如: <el-cascaderref"selectedArrRef"v-model"selectedArr":options"optionsList":props"{ checkStri…...
【软件逆向】QQ 连连看小游戏去广告与一键消除实现
目录 一、背景介绍 二、去广告实现 2.1 分析广告加载流程 2.2 逆向分析广告加载逻辑 2.3 去广告方案 三、一键消除外挂实现 3.1 分析游戏逻辑 3.2 编写外挂插件 3.3 注入外挂: 四、一键消除效果展示 五、额外扩展 一、背景介绍 QQ 连连看是一款经典的休闲…...
vue el-select 省市区三级联动 vue + element-ui使用第三方插件实现省市区三级联动
vue el-select 省市区三级联动 vue使用第三方插件实现省市区三级联动 网上找了好多教程,都是使用el-cascader级联选择器的省市区选择器,但是几乎没有三个单独的el-select的进行关联的三级省市联动组件效果 第一步:先安装省市区element-ui的插件 npm install element-china-a…...
【GPT入门】第8课 大语言模型的自洽性
【GPT入门】第8课 大语言模型的自洽性 1.自洽性概念2.代码(观察执行结果)3.自洽性核心思想 1.自洽性概念 大模型的自洽性(self - consistency)是指在推理阶段,大模型通过生成多个答案并选择出现频率最高的那个&#x…...
工程化与框架系列(28)--前端国际化实现
前端国际化实现 🌍 引言 前端国际化(i18n)是现代Web应用中的重要组成部分,它能够让应用支持多语言和多地区的用户使用。本文将深入探讨前端国际化的实现方案和最佳实践,包括文本翻译、日期时间格式化、货币处理等方面…...
【阿里云】操作系统控制台操作体验与性能评测全解析
引言 在现代的云计算环境中,操作系统控制台是进行系统管理和运维的重要工具。它不仅帮助用户高效地管理云端资源,还提供了智能助手、系统诊断、性能观测等功能,能够提升操作系统的使用效率,增强用户的操作体验。本文简要介绍了操…...
面试之《IntersectionObserver的使用》
IntersectionObserver 是一个 Web API,用于异步观察目标元素与其祖先元素或顶级文档视口(viewport)交叉状态的变化。这在很多场景下非常有用,比如懒加载图片、实现无限滚动加载更多内容等。下面详细介绍它的使用方法。 基本原理 …...
在 Spring Boot 2.7.x 中引入 Kafka-0.9 的实践
文章目录 在 Spring Boot 2.7.x 中引入 Kafka-0.9 的实践一、下载 Kafka-0.9二、启动 Zookeeper 和 Kafka三、创建 Spring Boot 项目四、引入 kafka 依赖五、移除 Kafka 自动配置六、编写 Kafka 生产者6.1 Kafka配置类6.2 生产者监听类 七、编写Controller发送Kafka八、验证消费…...
【MACOS】用户数据过多
进入下面的路径下找到.Spotlight-V100文件夹 /System/Volumes/Data修改选线 通过终端权限不够 在finder中进行查看然后解锁 然后添加权限 使用代码查看存储数据。 diskutil apfs list...
鸿蒙系统中的持续部署
鸿蒙操作系统,作为一款面向未来的分布式操作系统,旨在为不同的设备提供统一的操作系统平台。它支持多种终端设备,包括但不限于智能手机、平板电脑、智能穿戴设备和物联网(IoT)设备等,并且能够实现跨平台的无…...
centos linux安装mysql8 重置密码 远程连接
1. 下载并安装 MySQL Yum 仓库 从 MySQL 官方网站下载并安装 Yum 仓库配置文件。 # 下载MySQL 8.0的Yum仓库包 wget https://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm # 安装Yum仓库包 sudo rpm -ivh mysql80-community-release-el7-5.noarch.rpm2. 启…...
几种常见的虚拟环境工具(Virtualenv、Conda、System Interpreter、Pipenv、Poetry)的区别和特点总结
在 PyCharm 中创建虚拟环境是一个非常直接的过程,可以帮助你管理项目依赖,确保不同项目之间的依赖不会冲突。 通过 PyCharm 创建虚拟环境 打开 PyCharm 并选择或创建一个项目。 打开项目设置: 在 Windows/Linux 上,可以通过点击…...
VScode:运行程序停止后,频繁出现终端进程被终止
VScode里面powershell被迫关闭 bug场景排查原因解决办法 bug场景 系统:Windows IDE:Visual Studio Code 停止运行程序后,按向上箭头想要执行上一步命令,忽然终端页面强行关闭,并报错如下: 终端进程 &quo…...
PHP框架加载不上.env文件中的变量
以lumen5.5框架为例,根目录中bootstrap文件夹下的app.php文件中 (new Dotenv\Dotenv(__DIR__./../))->load(); 是读取所有.env中的文件的,这个是正常的,但是在代码中的任何位置或者在config目录下的databases.php里,代码如…...
Linux:基本指令与内涵理解
1.文件操作指令 1.1 ls ls指令用于查看指定层级文件夹下的文件或文件夹 基本格式:ls (选项) (查看层级) 其中选项处不写就默认是显示文件名,查看层级默认是当前层级 选项1: -l 作用:将查找文件的详细信息显示出来 我们…...
C++设计模式-抽象工厂模式:从原理、适用场景、使用方法,常见问题和解决方案深度解析
一、模式基本概念 1.1 定义与核心思想 抽象工厂模式(Abstract Factory Pattern)是创建型设计模式的集大成者,它通过提供统一的接口来创建多个相互关联或依赖的对象族,而无需指定具体类。其核心思想体现在两个维度: …...
LINUX系统安装+添加共享目录
一、前言 Windows或mac系统中创建Linux工作环境是基于VMware和SL(Scientific Linux),下面分别安装二者。 二、VMware软件安装及注册 1、双击VMware安装包 2、点击下一步 3、 勾选接受许可,并点击下一步 4、更改路径(建议更改为容易找到的路…...
《UE5_C++多人TPS完整教程》学习笔记34 ——《P35 网络角色(Network Role)》
本文为B站系列教学视频 《UE5_C多人TPS完整教程》 —— 《P35 网络角色(Network Role)》 的学习笔记,该系列教学视频为计算机工程师、程序员、游戏开发者、作家(Engineer, Programmer, Game Developer, Author) Stephe…...
成为git砖家(9): rebase进阶: 拆分commit为多个
问题描述 当一次性 git add 了多个修改点, 并且快速的执行了 git commit 后, 你觉得有点懊恼: 明明可以独立为两次或多次 commit, 揉在一块导致历史记录不太清晰。 比如我在 nn1 这个练手项目中, 最近一次 commit&am…...
pytorch retain_grad vs requires_grad
requires_grad大家都挺熟悉的,因此穿插在retain_grad的例子里进行捎带讲解就行。下面看一个代码片段: import torch# 创建一个标量 tensor,并开启梯度计算 x torch.tensor(2.0, requires_gradTrue)# 中间计算:y 依赖于 x&#x…...
Axure常用变量及使用方法详解
点击下载《Axure常用变量及使用方法详解.pdf》 摘要 Axure RP 作为一款领先的前端原型设计工具,提供了全面的 变量 和 函数 系统,以支持复杂的交互设计和动态内容展示。本文将从专业角度详细解析 Axure 中的 全局变量、中继器数据集变量/函数、元件变量…...
为企业级AI交互系统OpenWebUI集成LDAP用户权限认证(2)
为企业级AI交互系统OpenWebUI集成LDAP用户权限认证(2) 本文介绍如何OpenWebUI系统集成LDAP认证服务,及其用户权限及用户组设置。 推荐超级课程: 本地离线DeepSeek AI方案部署实战教程【完全版】Docker快速入门到精通Kubernetes入门到大师通关课AWS云服务快速入门实战目录…...
mac 被禁用docker ui后,如何使用lima虚拟机启动docker
本机macos 安装lima brew install lima创建配置 echo "\\ndynamic:\n big-sur:\n image: docker://docker:git\n linux:\n image: docker.io/limasoftware/ubuntu:20.04 \\n" > ~/.lima/default.yaml启动名叫default的虚拟机 limactl start default进…...
C#实现AES-CBC加密工具类(含完整源码及使用教程)
一、AES-CBC加密应用场景 AES(Advanced Encryption Standard)作为全球公认的安全加密标准,广泛使用在以下场景: API通信加密:保护HTTP接口传输的敏感数据(如身份令牌、支付信息)文件安全存储&…...
Unity辅助工具_头部与svn
Unity调用者按钮增加PlaySideButton using QQu; using UnityEditor; using UnityEngine; [InitializeOnLoad] public class PlaySideButton {static PlaySideButton(){UnityEditorToolbar.RightToolbarGUI.Add(OnRightToolbarGUI);UnityEditorToolbar.LeftToolbarGUI.Add(OnLe…...
VBA 数据库同一表的当前行与其他行的主键重复判断实现方案1
目的,判断是否主键重复,不重复则登录新数据,重复则不登录。 定义类型: DataRecord tableName 表名 rowNumber 行号 columnName 列名 data 数据 想要实现的代码逻辑如下: 模拟数据库的登录过程。假设…...
Pytorch系列教程:可视化Pytorch模型训练过程
深度学习和理解训练过程中的学习和进步机制对于优化性能、诊断欠拟合或过拟合等问题至关重要。将训练过程可视化的过程为学习的动态提供了有价值的见解,使我们能够做出合理的决策。训练进度必须可视化的两种方法是:使用Matplotlib和Tensor Board。在本文…...
CSS伸缩盒模型(弹性盒子)
伸缩盒模型(Flexbox,Flexible Box Layout)是 CSS 中一种一维布局模型,用于更高效地处理元素的对齐、分布和响应式布局。其核心思想是让容器内的子元素(称为“项目”)能够灵活地自动调整大小和位置以适应不同…...
C++蓝桥杯基础篇(十一)
片头 嗨~小伙伴们,大家好!今天我们来学习C蓝桥杯基础篇(十一),学习类,结构体,指针相关知识,准备好了吗?咱们开始咯~ 一、类与结构体 类的定义:在C中&#x…...
版本控制泄露源码 .svn
##相关知识 SVN源码泄露 SVN(subversion)是源代码版本管理软件,造成 SVN 源代码漏洞的主要原因是管理员操作不规范。“ 在使用 SVN 管理本地代码过程中,会自动生成一个名为 .svn 的隐藏文件夹,其中包含重要的源代码信…...
基于单片机的风速报警装置设计
标题:基于单片机的风速报警装置设计 内容:1.摘要 本设计聚焦于基于单片机的风速报警装置,旨在解决传统风速监测缺乏实时报警功能的问题。采用单片机作为核心控制单元,结合风速传感器采集风速数据。经实验测试,该装置能准确测量 0 - 60m/s 范…...
YOLOv12本地部署教程——42%速度提升,让高效目标检测触手可及
YOLOv12 是“你只看一次”(You Only Look Once, YOLO)系列的最新版本,于 2025 年 2 月发布。它引入了注意力机制,提升了检测精度,同时保持了高效的实时性能。在保持速度的同时,显著提升了检测精度。例如&am…...
Banana Pi OpenWRT One Wifi6 OpenWrt社区官方开源路由器评测
第一款不可破解、开源、版权软件、符合 FCC、CE 和 RoHS 的维修权路由器 OpenWRT项目今年已经20岁了,为了纪念这一时刻,Banana Pi OpenWrt One/AP-24.XY路由器开发系统已经上市。这是OpenWRT团队与硬件公司的第一个联合项目。选择 Banana Pi,…...
【算法】经典排序算法介绍+代码示例
排序算法介绍 1)冒泡排序 (Bubble Sort)2)选择排序(Selection Sort)3)插入排序(Insertion Sort)4)希尔排序(Shell Sort)5)归并排序(Me…...
DeepSeek 助力 Vue3 开发:打造丝滑的表格(Table)之添加列宽调整功能,示例Table14_02带边框和斑马纹的固定表头表格
前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 Deep…...
【Linux】线程控制
目录 一、原生线程库: 二、线程控制: 1、线程创建: 2、线程等待: 自定义类型的接收对象: 编辑 3、线程终止: pthread_exit: pthread_cancel: 4、线程ID: 线程库的底层原…...
pyqt联合designer的运用和设置
PyQt Designer 简介 PyQt Designer 是一个用于创建和设计 PyQt 应用程序用户界面的可视化工具。它允许用户通过拖放方式添加和排列各种控件,如按钮、文本框、滑块等,并设置它们的属性和样式,从而快速构建出美观且功能完整的 UI 界面。 Windows版本:【免费】安装包别管啊啊…...
spring boot3.4.3+MybatisPlus3.5.5+swagger-ui2.7.0
使用 MyBatis-Plus 操作 books 表。我们将实现以下功能: 创建实体类 Book。 创建 Mapper 接口 BookMapper。 创建 Service 层 BookService 和 BookServiceImpl。 创建 Controller 层 BookController。 配置 MyBatis-Plus 和数据库连接。 1. 项目结构 src ├─…...
利用微软的 HTML 应用程序宿主程序的攻击
mshta.exe 是微软的 HTML 应用程序宿主程序(Microsoft HTML Application Host),属于 Windows 系统组件。它的核心功能是运行 .hta(HTML Application)文件,允许通过 HTML、JavaScript、VBScript 等技术创建交…...
【深度学习】读写文件
读写文件 到目前为止,我们讨论了如何处理数据,以及如何构建、训练和测试深度学习模型。 然而,有时我们希望保存训练的模型,以备将来在各种环境中使用(比如在部署中进行预测)。 此外,当运行一个…...
Bert的使用
一、Data.py # data负责产生两个dataloader from torch.utils.data import DataLoader, Dataset from sklearn.model_selection import train_test_split #给X,Y 和分割比例, 分割出来一个训练集和验证机的X, Y import torchdef read_file(path):data []label …...
Unity使用UGUI制作无限滑动列表
原理参照上一篇使用NGUI的制作无限滑动列表的文章 Unity 使用NGUI制作无限滑动列表_unity 滑动列表很多物体-CSDN博客 准备工作: 新建一个空物体命名为LoopList,并调整其大小, 并增加Scroll Rect组件(用于滑动)、Re…...
ThinkPHP6用户登录系统的全过程
ThinkPHP6用户登录系统的全过程涉及请求处理、数据传输、路由分发、控制器逻辑、模型验证及中间件协作等多个模块的交互。详细的过程解析如下: 1. 前端请求与路由分发 前端发起请求:用户在前端页面(如Vue组件或HTML表单)输入用户…...
C++全栈聊天项目(2) 单例模式封装Http管理者
完善注册类界面 先在注册类构造函数里添加lineEdit的模式为密码模式 ui->lineEdit_Passwd->setEchoMode(QLineEdit::Password); ui->lineEdit_Confirm->setEchoMode(QLineEdit::Password);我们在注册界面的ui里添加一个widget,widget内部包含一个tip居…...
【鸿蒙开发】OpenHarmony调测工具hdc使用教程(设备开发者)
00. 目录 文章目录 00. 目录01. OpenHarmony概述02. hdc简介03. hdc获取04. option相关的命令05. 查询设备列表的命令06. 服务进程相关命令07. 网络相关的命令08. 文件相关的命令09. 应用相关的命令10. 调试相关的命令11. 常见问题12. 附录 01. OpenHarmony概述 OpenHarmony是…...
ORACLE EBS数据库RELINK方式搭建克隆环境
ORACLE EBS系统的数据库,一般都安装了很多特定功能的小补丁来解决特定的BUG;因此对于已经安装好的系统,想要克隆一套测试环境、搭建一个新的备机做测试等,如果按照生产环境标准,则需要安装大量补丁,带来很大…...
MySQL regexp 命令
REGEXP命令是一种用于进行正则表达式匹配的运算符,允许在查询中使用正则表达式来匹配字符串模式1。 基本语法 基本的语法结构如下: SELECT * FROM table_name WHERE column_name REGEXP pattern; 这里,pattern是你要匹配的正则表达式模…...
前端实习到工作的经历
看了很多人的程序员生涯之路,我突然意识到我也该记录一些东西,因此有感而发。 我是一个24届毕业生,大三下就开始找前端实习,当时学校不让走,我们都是先面着然后准备放假就去。当时周围小伙伴都找好了,考完…...