赞
踩
上一篇,我们介绍了debug、encoding、flag三个库,这篇我们继续介绍剩下的库
在 Go 语言的标准库中,fmt 包提供了格式化输入输出的功能。
这个包包括了一系列函数,用于将数据格式化为字符串(fmt.Sprintf)、输出到控制台(fmt.Print、fmt.Println、fmt.Printf)以及读取输入数据(fmt.Scan、fmt.Scanf、fmt.Scanln)等。
Print、Println、Printf: 用于将格式化的文本输出到标准输出。Println 会在输出的文本末尾添加换行符。Scan、Scanln、Scanf: 用于从标准输入读取数据。Scanln 会在读取后换行。Sprint、Sprintln、Sprintf: 用于将数据格式化为字符串而不输出。Fprint、Fprintln、Fprintf: 用于将格式化的文本输出到指定的 io.Writer。package main import "fmt" func main() { // Println示例 fmt.Println("Hello, Golang!") // Printf示例 name := "Alice" age := 25 fmt.Printf("Name: %s, Age: %d\n", name, age) // Sprintf示例 formattedString := fmt.Sprintf("Name: %s, Age: %d", name, age) fmt.Println(formattedString) // Scan示例 var inputName string var inputAge int fmt.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) }
在这个示例中,使用了 Println、Printf、Sprintf、Scan 等函数。
通过这些函数,可以方便地进行输出和输入的格式化操作。
注意,在使用 Scan 函数时,需要使用取地址符&来获取输入的值的地址。
在 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 main import ( "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 消息。
在 Go 语言的标准库中,html 包实际上并不存在。
然而,Go 标准库提供了 html/template 包,用于 HTML 模板的解析和渲染。
这个包允许创建动态的 HTML 内容,通过填充数据生成最终的 HTML 页面。
{{...}} 语法定义模板变量和控制结构。Execute 和 ExecuteTemplate 方法,用于将模板应用于数据并生成最终的 HTML。如何使用 html/template 包创建和执行 HTML 模板:
package main import ( "html/template" "os" ) // 数据结构 type Person struct { Name string Age int City 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
感谢您的支持和鼓励!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。