【GoLang入门教程】Go语言几种标准库介绍(四)

编程语言的未来?

文章目录

    • 编程语言的未来?
      • 前言
      • 几种库
        • fmt库 (格式化操作)
          • 关键函数:
          • 示例
        • Go库
          • 标准库
          • 第三方库
          • 示例
        • html库(HTML 转义及模板系统)
          • 主要功能:
          • 示例
      • 总结
      • 专栏集锦
      • 写在最后

579a429daf314744b995f37351b46548

前言

上一篇,我们介绍了debug、encoding、flag三个库,这篇我们继续介绍剩下的库


几种库

fmt库 (格式化操作)

在 Go 语言的标准库中,fmt 包提供了格式化输入输出的功能。

这个包包括了一系列函数,用于将数据格式化为字符串(fmt.Sprintf)、输出到控制台(fmt.Printfmt.Printlnfmt.Printf)以及读取输入数据(fmt.Scanfmt.Scanffmt.Scanln)等。

关键函数:
  1. PrintPrintlnPrintf 用于将格式化的文本输出到标准输出。Println 会在输出的文本末尾添加换行符。
  2. ScanScanlnScanf 用于从标准输入读取数据。Scanln 会在读取后换行。
  3. SprintSprintlnSprintf 用于将数据格式化为字符串而不输出。
  4. FprintFprintlnFprintf 用于将格式化的文本输出到指定的 io.Writer
示例
package mainimport "fmt"func main() {// Println示例fmt.Println("Hello, Golang!")// Printf示例name := "Alice"age := 25fmt.Printf("Name: %s, Age: %d\n", name, age)// Sprintf示例formattedString := fmt.Sprintf("Name: %s, Age: %d", name, age)fmt.Println(formattedString)// Scan示例var inputName stringvar inputAge intfmt.Print("Enter your name: ")fmt.Scan(&inputName)fmt.Print("Enter your age: ")fmt.Scan(&inputAge)fmt.Printf("You entered: Name: %s, Age: %d\n", inputName, inputAge)
}

在这个示例中,使用了 PrintlnPrintfSprintfScan 等函数。

通过这些函数,可以方便地进行输出和输入的格式化操作。

注意,在使用 Scan 函数时,需要使用取地址符&来获取输入的值的地址。

Go库

在 Go 语言中,术语 “Go库” 通常是指标准库(Standard Library)和第三方库(Third-party Libraries)。

标准库

Go 语言的标准库是与语言一起发布的一组包,提供了广泛的功能,包括输入输出、网络、加密、并发等。这些包是通过 import 语句引入的,无需额外安装。

以下是一些标准库的子包以及其主要功能:

  • fmt 格式化输入输出。

  • net 网络编程,包括 TCP、UDP、HTTP 等。

  • http HTTP 协议的实现,用于构建 Web 应用程序。

  • os 操作系统相关的功能,例如文件操作、环境变量等。

  • io 输入输出抽象。

  • crypto 加密和哈希算法。

  • time 处理时间和日期。

  • sync 并发编程的同步工具。

  • database/sql 数据库操作。

第三方库

除了标准库之外,Go 社区还拥有丰富的第三方库,可通过工具如 go get 来获取和安装。这些库涵盖了各种领域,包括 Web 框架、数据库驱动、图形界面等。

以下是一些流行的第三方库:

  • gin Web 框架,用于构建高性能的 Web 应用程序。
  • gorm ORM(对象关系映射)库,用于数据库操作。
  • viper 配置管理库,用于处理应用程序配置。
  • cobra 命令行应用程序的库,用于创建命令行工具。
  • govalidator 输入验证库,用于验证用户输入的数据。
示例

使用标准库的 fmt 包以及第三方库的 gin 包:

package mainimport ("fmt""github.com/gin-gonic/gin"
)func main() {// 标准库示例fmt.Println("Hello, Go Standard Library!")// 第三方库示例(使用 gin 框架)router := gin.Default()router.GET("/", func(c *gin.Context) {c.JSON(200, gin.H{"message": "Hello, Gin!",})})router.Run(":8080")
}

在这个示例中,首先使用标准库的 fmt 包输出一条简单的消息。

然后,使用第三方库 gin 构建了一个简单的 HTTP 服务,该服务在根路径 (“/”) 下响应一个 JSON 消息。

html库(HTML 转义及模板系统)

在 Go 语言的标准库中,html 包实际上并不存在。

然而,Go 标准库提供了 html/template 包,用于 HTML 模板的解析和渲染。

这个包允许创建动态的 HTML 内容,通过填充数据生成最终的 HTML 页面。

主要功能:
  1. HTML 模板定义: 允许在 HTML 中嵌入 Go 代码,并使用 {{...}} 语法定义模板变量和控制结构。
  2. 模板执行: 提供了 ExecuteExecuteTemplate 方法,用于将模板应用于数据并生成最终的 HTML。
  3. 模板函数: 支持自定义的模板函数,以便在模板中执行自定义的操作。
示例

如何使用 html/template 包创建和执行 HTML 模板:

package mainimport ("html/template""os"
)// 数据结构
type Person struct {Name  stringAge   intCity  string
}func main() {// HTML 模板定义htmlTemplate := `
<!DOCTYPE html>
<html>
<head><title>{{.Name}}'s Profile</title>
</head>
<body><h1>{{.Name}}'s Profile</h1><p>Age: {{.Age}}</p><p>City: {{.City}}</p>
</body>
</html>
`// 创建模板对象tmpl, err := template.New("profile").Parse(htmlTemplate)if err != nil {panic(err)}// 数据personData := Person{Name: "Alice",Age:  30,City: "Wonderland",}// 执行模板并输出到标准输出err = tmpl.Execute(os.Stdout, personData)if err != nil {panic(err)}
}

在这个示例中,定义了一个简单的 HTML 模板,并使用 template.New("profile").Parse 创建了一个模板对象。

然后,创建了一个 Person 结构体的实例作为数据,最后使用 tmpl.Execute 将数据应用于模板并输出到标准输出。


总结

这里我们介绍了3个库fmt、Go、html 3个库, 下一篇我们将介绍其他的几种标准库


专栏集锦

大佬们可以收藏以备不时之需:

Spring Boot 专栏:http://t.csdnimg.cn/peKde

ChatGPT 专栏:http://t.csdnimg.cn/cU0na

Java 专栏:http://t.csdnimg.cn/YUz5e

Go 专栏:http://t.csdnimg.cn/Jfryo

Netty 专栏:http://t.csdnimg.cn/0Mp1H

Redis 专栏:http://t.csdnimg.cn/JuTue

Mysql 专栏:http://t.csdnimg.cn/p1zU9

架构之路 专栏:http://t.csdnimg.cn/bXAPS


写在最后

感谢您的支持和鼓励! 😊🙏

如果大家对相关文章感兴趣,可以关注公众号"架构殿堂",会持续更新AIGC,java基础面试题, netty, spring boot, spring cloud等系列文章,一系列干货随时送达!

csdn-end

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/594987.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

魔术表演Scratch-第14届蓝桥杯Scratch省赛真题第1题

1.魔术表演&#xff08;20分&#xff09; 评判标准&#xff1a; 4分&#xff1a;满足"具体要求"中的1&#xff09;&#xff1b; 8分&#xff1a;满足"具体要求"中的2&#xff09;&#xff1b; 8分&#xff0c;满足"具体要求"中的3&#xff09…

GPU的硬件架构

SM: streaming Multiprocessor 流多处理器 sm里面有多个(sp)cuda core 32个线程称为一个warp&#xff0c;一个warp是一个基本执行单元 抽象概念&#xff1a;grid 网格 block 块 thread 线程 块中的线程大小是有讲究的&#xff0c;关乎到资源的调度&#xff0c;一般是128&#x…

关于“Python”的核心知识点整理大全59

目录 19.3.2 将数据关联到用户 1. 修改模型Topic models.py 2. 确定当前有哪些用户 3. 迁移数据库 注意 19.3.3 只允许用户访问自己的主题 views.py 19.3.4 保护用户的主题 views.py views.py 19.3.6 将新主题关联到当前用户 views.py 往期快速传送门&#x1f44…

是否还在 Docker 中跑 MySQL?

容器的定义&#xff1a;容器是为了解决“在切换运行环境时&#xff0c;如何保证软件能够正常运行”这一问题。 目前&#xff0c;容器和 Docker 依旧是技术领域最热门的词语&#xff0c;无状态的服务容器化已经是大势所趋&#xff0c;同时也带来了一个热点问题被大家所争论不以…

[DevOps-02] Code编码阶段工具

一、简要说明 在code阶段,我们需要将不同版本的代码存储到一个仓库中,常见的版本控制工具就是SVN或者Git,这里我们采用Git作为版本控制工具,GitLab作为远程仓库。 Git安装安装GitLab配置GitLab登录账户二、Git安装 Git官网 Githttps://git-scm.com/

卫星互联网与MEC融合方案研究

卫星互联网与MEC融合方案研究 作者&#xff1a;温特、王立中、司鹏、颜明明、马恬、郭伊蒙 中国卫通集团股份有限公司 本文首发&#xff1a;第十九届卫星通信学术年会 摘 要&#xff1a;在卫星互联网中引入移动边缘计算(MEC)技术可有效提高用户体验质量&#xff0c;降低运营成…

jQuery文件下载方法及引入HTML语法

jQuery下载 去jQuery网站下载文件包&#xff0c;点击主页的“Download”之后&#xff0c;进入下载页面&#xff0c;可以选择production版本的进行下载&#xff0c;但是点击进去之后&#xff0c;浏览器并不会直接下载相关的文件&#xff0c;而是跳转到一个“密密麻麻”都是jQue…

15.bash shell中自定义命令行选项与getopt/getopts

文章目录 linux shell 命令行选项1.命令行选项的手动实现简单选项分离命令行参数和选项带值的选项合并选项 2.使用 getopt 命令getopts命令选项标准化 欢迎访问个人网络日志&#x1f339;&#x1f339;知行空间&#x1f339;&#x1f339; linux shell 命令行选项 选项是跟在单…

MySQL基础篇(一)SQL

视频地址: 黑马程序员 MySQL数据库入门到精通&#xff0c;从mysql安装到mysql高级、mysql优化全囊括 SQL&#xff0c;全称 Structured Query Language&#xff0c;结构化查询语言。操作关系型数据库的编程语言&#xff0c;定义了一套操作关系型数据库统一 标准。 一、SQL通用语…

整数的阶乘(英语:factorial)是所有小于及等于

整数的阶乘&#xff08;英语&#xff1a;factorial&#xff09;是所有小于及等于该数的正整数的积&#xff0c;0的阶乘为1。即&#xff1a;n!123...n。 实例 #!/usr/bin/python3 # Filename : test.py # author by : www.dida100.com # 通过用户输入数字计算阶乘 # 获…

electron自定义菜单

创建menu.js const { app, Menu } require("electron"); const createMenu () > {const menu [{label: "菜单",submenu: [{label: "新增",click: () > {},}, ],},{label: "关于",submenu: [{label: "新增",click:…

Java数据结构:1. 数据结构前置知识

文章目录 一、初识数据结构二、初识集合框架1. 什么是集合框架2. 集合框架的重要性3. 背后所涉及的数据结构以及算法 三、时间复杂度空间复杂度1. 算法效率2. 时间复杂度&#xff08;1&#xff09;概念&#xff08;2&#xff09;大O的渐进表示法&#xff08;3&#xff09;推导大…

MySQL5.7用于控制副本服务器的 SQL 语句

官网地址&#xff1a;MySQL :: MySQL 5.7 Reference Manual :: 13.4.2 SQL Statements for Controlling Replica Servers 欢迎关注留言&#xff0c;我是收集整理小能手&#xff0c;工具翻译&#xff0c;仅供参考&#xff0c;笔芯笔芯. MySQL 5.7 参考手册 / ... / CHANGE M…

C语言多线程编程-线程间通信

介绍 在C语言中&#xff0c;采用多线程编程&#xff0c;我们经常会遇到&#xff0c;线程之前需要同步数据&#xff0c;或者一个线程处理后的的数据&#xff0c;需要给另外一个线程进行处理&#xff0c;这就需要线程之间进行通讯&#xff0c;多线程间的通信和同步是通过操作系统…

计算机系统基础

C 语言相关内容省略&#xff0c;复习自用&#xff0c;仅供参考~ 概述 冯诺伊曼结构 存储程序工作方式&#xff1a;将事先编好的程序和原始数据送入主存后才能执行程序&#xff0c;程序被启动执行后&#xff0c;计算机能在不需要操作人员干预下自动完成逐条指令取出和执行的任…

Toast.makeText()的使用方法

Toast.makeText()的使用方法 大家好&#xff0c;我是免费搭建查券返利机器人赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;在今天的文章中&#xff0c;我们将深入讨论Android开发中一个常用而且便捷的UI组件——…

奋楫扬帆,奔赴新程 | 2023 年图扑大事记回顾,与您携手共迎 2024

2023.01 工信部公示了 2022 年度智能制造示范工厂揭榜单位和优秀场景名单。图扑软件和上海洲邦合作建设的宁波甬友数字孪生工厂被评为优秀场景&#xff0c;全国共有 369 个智能制造典型场景入选。 2023.01 在第十一届中国创新创业大赛全国赛&#xff08;新一代信息技术&#…

RabbitMQ(八)消息的序列化

目录 一、为什么需要消息序列化&#xff1f;二、常用的消息序列化方式1&#xff09;Java原生序列化&#xff08;默认&#xff09;2&#xff09;JSON格式3&#xff09;Protobuf 格式4&#xff09;Avro 格式5&#xff09;MessagePack 格式 三、总结 RabbitMQ 是一个强大的消息中间…

Hadoop分布式文件系统(二)

一、Hadoop 1、文件系统 1.1、文件系统定义 文件系统是一种存储和组织数据的方法&#xff0c;实现了数据的存储、分级组织、访问和获取等操作&#xff0c;使得用户对文件访问和查找变得容易。 文件系统使用树形目录的抽象逻辑概念代替了硬盘等物理设备使用数据块的概念&#…

通信基础——带宽

随着信息社会的发展和数字化进程的加速&#xff0c;通信技术已经成为现代社会最为重要的基础设施之一。而在通信技术中&#xff0c;带宽作为一个重要的概念&#xff0c;对于我们理解和应用现代通信技术具有至关重要的意义。本文将以“通信基础——带宽”为主题&#xff0c;对带…