0


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

编程语言的未来?

文章目录

579a429daf314744b995f37351b46548

前言

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


几种库

fmt库 (格式化操作)

在 Go 语言的标准库中,

fmt

包提供了格式化输入输出的功能。

这个包包括了一系列函数,用于将数据格式化为字符串(

fmt.Sprintf

)、输出到控制台(

fmt.Print

fmt.Println

fmt.Printf

)以及读取输入数据(

fmt.Scan

fmt.Scanf

fmt.Scanln

)等。

关键函数:
  1. PrintPrintlnPrintf 用于将格式化的文本输出到标准输出。Println 会在输出的文本末尾添加换行符。
  2. ScanScanlnScanf 用于从标准输入读取数据。Scanln 会在读取后换行。
  3. SprintSprintlnSprintf 用于将数据格式化为字符串而不输出。
  4. FprintFprintlnFprintf 用于将格式化的文本输出到指定的 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 语言中,术语 “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 消息。

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

在 Go 语言的标准库中,

html

包实际上并不存在。

然而,Go 标准库提供了

html/template

包,用于 HTML 模板的解析和渲染。

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

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

如何使用

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


写在最后

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

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

csdn-end


本文转载自: https://blog.csdn.net/jinxinxin1314/article/details/135376329
版权归原作者 The-Venus 所有, 如有侵权,请联系我们删除。

“【GoLang入门教程】Go语言几种标准库介绍(四)”的评论:

还没有评论