0


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

文章目录

579a429daf314744b995f37351b46548

前言

上一篇,我们介绍了image、IO、math三个库,这篇我们继续介绍剩下的库


几种库

Net库 (网络库,支持 Socket、HTTP、邮件、RPC、SMTP 等)

在 Go 语言的标准库中,

net

包提供了对网络操作的支持,包括基本的网络协议、Socket 编程、HTTP 客户端和服务器等。

net

包包含多个子包,其中一些主要的子包包括

net/http

net/url

net/rpc

等。

重要的子包和功能:
  1. net/http 提供了用于构建 HTTP 客户端和服务器的功能,包括处理请求和响应、创建路由、设置中间件等。
  2. net/url 用于解析和构建 URL,提供了对 URL 中各个部分的访问方法。
  3. net/rpc 实现了远程过程调用(RPC)的基本功能,用于构建分布式系统。
  4. net 提供了一些基础的网络操作,如 Dial 用于建立网络连接,Listen 用于监听网络端口。
示例
package main

import (
    "fmt"
    "net/http"
)

func main() {
    // 设置路由
    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        fmt.Fprint(w, "Hello, Go HTTP Server!")
    })

    // 启动服务器,监听在 8080 端口
    err := http.ListenAndServe(":8080", nil)
    if err != nil {
        fmt.Println("Error starting server:", err)
    }
}

在这个示例中,使用

http.HandleFunc

设置了一个简单的路由,该路由处理根路径 (“/”) 的 HTTP 请求,并返回一个简单的文本响应。然后,使用

http.ListenAndServe

启动了一个 HTTP 服务器,监听在 8080 端口。当访问 http://localhost:8080/ 时,将会看到服务器返回的文本内容。

OS库(操作系统平台不依赖平台操作封装)

在 Go 语言的标准库中,

os

包提供了与操作系统交互的功能,包括文件和目录操作、环境变量、程序退出等。

os

包中的函数和类型允许你执行许多与操作系统相关的任务。

主要功能:
  1. 文件和目录操作:- Create:创建文件。- Open:打开文件。- Mkdir:创建目录。- Remove:删除文件或目录。- Rename:重命名文件或目录。
  2. 环境变量:- Getenv:获取环境变量的值。- Setenv:设置环境变量的值。- Environ:获取所有环境变量的键值对。
  3. 程序退出:- Exit:终止程序运行。
  4. 标准输入输出:- Stdin:标准输入。- Stdout:标准输出。- Stderr:标准错误输出。
示例
package main

import (
    "fmt"
    "os"
)

func main() {
    // 创建文件并写入内容
    file, err := os.Create("example.txt")
    if err != nil {
        fmt.Println("Error creating file:", err)
        return
    }
    defer file.Close()

    content := []byte("Hello, Go File!")
    _, err = file.Write(content)
    if err != nil {
        fmt.Println("Error writing to file:", err)
        return
    }

    fmt.Println("File created and written successfully.")

    // 打开文件并读取内容
    openedFile, err := os.Open("example.txt")
    if err != nil {
        fmt.Println("Error opening file:", err)
        return
    }
    defer openedFile.Close()

    readContent := make([]byte, 100)
    _, err = openedFile.Read(readContent)
    if err != nil {
        fmt.Println("Error reading from file:", err)
        return
    }

    fmt.Printf("Read from file: %s\n", readContent)

    // 创建目录
    err = os.Mkdir("example_dir", 0755)
    if err != nil {
        fmt.Println("Error creating directory:", err)
        return
    }

    fmt.Println("Directory created successfully.")

    // 重命名文件
    err = os.Rename("example.txt", "renamed_example.txt")
    if err != nil {
        fmt.Println("Error renaming file:", err)
        return
    }

    fmt.Println("File renamed successfully.")
}

在这个示例中,使用

os.Create

创建一个文件,然后使用

file.Write

写入内容。

接着,使用

os.Open

打开这个文件,使用

openedFile.Read

读取内容。

之后,使用

os.Mkdir

创建一个目录,并使用

os.Rename

重命名文件。

path库(兼容各操作系统的路径操作实用函数)

在 Go 语言的标准库中,

path

包(实际上是

path/filepath

包)提供了用于处理文件路径的函数。

这个包的目的是使路径处理在不同操作系统上都能保持一致性,即使操作系统的路径分隔符不同。

常用函数:
  1. Join 将多个路径元素连接成一个路径。该函数会根据操作系统自动选择正确的路径分隔符。
  2. Base 返回路径的最后一个元素。
  3. Dir 返回路径除去最后一个元素的部分。
  4. Clean 清理路径,解析路径中的 “…”、“.” 等元素。
  5. IsAbs 判断路径是否是绝对路径。
  6. Rel 返回基准路径到目标路径的相对路径。
示例
package main

import (
    "fmt"
    "path/filepath"
)

func main() {
    // Join函数:连接路径
    joinedPath := filepath.Join("dir", "subdir", "file.txt")
    fmt.Println("Joined Path:", joinedPath)

    // Base函数:获取路径的最后一个元素
    base := filepath.Base("/path/to/file.txt")
    fmt.Println("Base:", base)

    // Dir函数:获取路径除去最后一个元素的部分
    dir := filepath.Dir("/path/to/file.txt")
    fmt.Println("Dir:", dir)

    // Clean函数:清理路径
    cleanPath := filepath.Clean("/path/to/../file.txt")
    fmt.Println("Cleaned Path:", cleanPath)

    // IsAbs函数:判断路径是否是绝对路径
    isAbs := filepath.IsAbs("/path/to/file.txt")
    fmt.Println("Is Absolute Path:", isAbs)

    // Rel函数:获取基准路径到目标路径的相对路径
    relativePath, err := filepath.Rel("/path/to", "/path/to/file.txt")
    if err != nil {
        fmt.Println("Error getting relative path:", err)
    } else {
        fmt.Println("Relative Path:", relativePath)
    }
}

在这个示例中,使用了

path/filepath

包的一些函数,展示了路径连接、获取最后一个元素、获取路径部分、清理路径、判断是否是绝对路径以及获取相对路径等操作。

这些函数使得在不同操作系统上处理文件路径变得更加简便。


总结

这里我们介绍了3个库Net、OS、path3个库, 下一篇我们将介绍其他的几种标准库


专栏集锦

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

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/135516661
版权归原作者 The-Venus 所有, 如有侵权,请联系我们删除。

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

还没有评论