【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 的累加和

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/897663.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/897663.shtml
英文地址,請注明出處:http://en.pswp.cn/news/897663.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

全員DeepSeek時代,前端能做些什么?

全員DeepSeek時代,前端能做些什么? 前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,可以分享一下給大家。點擊跳轉到網站。 https://www.captainbed.cn/ccc #mermaid-svg-VNyL95jkz9jEXgUq {font-family:&…

Machine Learning: 十大基本機器學習算法

機器學習算法分類:監督學習、無監督學習、強化學習 基本的機器學習算法: 線性回歸、支持向量機(SVM)、最近鄰居(KNN)、邏輯回歸、決策樹、k平均、隨機森林、樸素貝葉斯、降維、梯度增強。 機器學習算法大致可以分為三類: 監督學習算法 (Sup…

【Linux docker 容器】關于想要讓虛擬機在開機時候也docker自己啟動,容器也自己啟動,省去要自己開docker和容器

確認 Docker 服務狀態: 首先,你需要確保 Docker 服務已經在虛擬機上安裝并正確配置。你可以使用如下命令來檢查 Docker 服務的狀態: systemctl status docker.service 如果服務沒有運行,你可以使用以下命令啟動它: s…

前端系統測試(單元、集成、數據|性能|回歸)

有關前端測試的面試題 系統測試 首先,功能測試部分。根據資料,單元測試是驗證最小可測試單元的正確性,比如函數或組件。都提到了單元測試的重要性,強調其在開發早期發現問題,并通過自動化提高效率。需要整合我搜索到的資料中的觀點,比如單元測試的方法(接口測試、路徑覆…

linux 命令 ls

ls 是 Linux 系統中用于列出目錄內容的核心命令,幾乎所有日常操作都會用到。以下是其詳細用法和常見場景說明 1. 基礎語法 ls [選項] [目錄/文件] 不指定目錄時,默認列出當前目錄的內容。 可以指定文件或目錄路徑,支持通配符(如…

CI/CD—GitLab部署

GitLab簡介: GitLab 是一個用于代碼托管和軟件開發協作的平臺,在全球開發者社區及企業中應用廣泛,以下是對它的詳細介紹: 主要功能 代碼托管:提供了基于 Git 的代碼倉庫管理功能,支持創建、克隆、推送、…

ubuntu軟件

視頻軟件,大部分的編碼都能適應 sudo apt install vlc圖片軟件 sudo apt install gwenview截圖軟件 sudo apt install flameshot設置快捷鍵 flameshot flameshot gui -p /home/cyun/Pictures/flameshot也就是把它保存到一個自定義的路徑 菜單更換 sudo apt r…

Easysearch 使用 AWS S3 進行快照備份與還原:完整指南及常見錯誤排查

Easysearch 可以使用 AWS S3 作為遠程存儲庫,進行索引的快照(Snapshot)備份和恢復。同時,Easysearch 內置了 S3 插件,無需額外安裝。以下是完整的配置和操作步驟。 1. 在 AWS S3 上創建存儲桶 登錄 AWS 控制臺&#x…

【系統架構設計師】性能評估

目錄 1. 說明2. 基準測試程序3. Web服務器的性能評估4. 系統監視5. 例題5.1 例題1 1. 說明 1.性能評估是為了一個目的,按照一定的步驟,選用一定的度量項目,通過建模和實現,對一個系統的性能進行各項檢測,對測試結果做…

動態規劃-第2篇

前言:在上一篇文章中,我們了解了動態規劃的基本概念和解決問題的基本思路。通過分解問題、存儲子問題的解,動態規劃為我們提供了高效的解決方案。然而,動態規劃并不是一成不變的,它有很多不同的技巧和變種,…

基于Redis實現限流

限流盡可能在滿足需求的情況下越簡單越好! 1、基于Redsi的increment方法實現固定窗口限流 Redis的increment方法保證并發線程安全窗口盡可能越小越好(太大可能某一小段時間就打滿請求剩下的都拿不到令牌了)這個原理其實就是用當前時間戳然后除窗口大小 在這個窗口大…

【工具使用】IDEA 社區版如何創建 Spring Boot 項目(詳細教程)

IDEA 社區版如何創建 Spring Boot 項目(詳細教程) Spring Boot 以其簡潔、高效的特性,成為 Java 開發的主流框架之一。雖然 IntelliJ IDEA 專業版提供了Spring Boot 項目向導,但 社區版(Community Edition&#xff09…

探索高性能AI識別和邊緣計算 | NVIDIA Jetson Orin Nano 8GB 開發套件的全面測評

隨著邊緣計算和人工智能技術的迅速發展,性能強大的嵌入式AI開發板成為開發者和企業關注的焦點。NVIDIA近期推出的Jetson Orin Nano 8GB開發套件,憑借其40 TOPS算力、高效的Ampere架構GPU以及出色的邊緣AI能力,引起了廣泛關注。本文將從配置性…

緊急救援!MySQL數據庫誤刪后的3種恢復方案

一、誤刪場景分類與恢復策略 ?常見誤操作場景?: DROP TABLE 誤刪單表(高頻事故)DELETE 誤刪數據(可通過事務回滾搶救)DROP DATABASE 刪除整個庫(需全量備份)服務器rm -rf(物理文件刪除)?恢復方案選擇矩陣?: 場景推薦方案時間窗口表結構刪除(DROP)備份恢復 + B…

開源免費日志服務ELK Syack代替syslog

一、ELK Stack 采集 syslog 日志的主要方式 通常,ELK Stack 使用 Logstash 或者 Filebeat 來采集 syslog 日志。 Beats 通常更輕量級,適合作為代理部署在各個日志源服務器上,而 Logstash 則功能更強大,可以進行更復雜的日志處理和…

單片機設計暖腳器研究

標題:單片機設計暖腳器研究 內容:1.摘要 本文聚焦于基于單片機設計暖腳器的研究。背景方面,在寒冷季節,暖腳器能有效改善腳部寒冷狀況,提升人們的舒適度,但傳統暖腳器存在功能單一、溫控不準確等問題。目的是設計一款智能、高效且…

藍橋杯省賽真題C++B組2024-握手問題

一、題目 【問題描述】 小藍組織了一場算法交流會議,總共有 50 人參加了本次會議。在會議上,大家進行了握手交流。按照慣例他們每個人都要與除自己以外的其他所有人進行一次握手(且僅有一次)。但有 7 個人,這 7 人彼此之間沒有進行握手(但這…

C#+AForge 實現視頻錄制

C#AForge 實現視頻錄制 ? 在C#中,使用AForge 庫實現視頻錄制功能是一個比較直接的過程。AForge 是一個開源的.NET框架,提供了許多用于處理圖像和視頻的類庫。 開發步驟 安裝AForge庫 ? 首先,確保你的項目中已經安裝了 AForge.Video和AFo…

PHP框架加載不上.env文件中的變量

以lumen5.5框架為例,根目錄中bootstrap文件夾下的app.php文件中 (new Dotenv\Dotenv(__DIR__./../))->load(); 是讀取所有.env中的文件的,這個是正常的,但是在代碼中的任何位置或者在config目錄下的databases.php里,代碼如…

21.Linux 線程庫的使用與封裝

在linux內核中并沒有線程的概念,只有輕量級進程LWP的概念,linux下的線程都是是由LWP進行模擬實現的。因此linux操作系統中不會提供線程的相關接口,只會提供輕量級線程的接口(如vfork,clone等)。但是在我們的…