golang一些常用库(2)

2024-02-04 16:27:33 浏览数 (1)

sync 包提供了一些基本的同步原语,如互斥锁(Mutex)和条件变量(Cond),用于处理并发编程。

代码语言:javascript复制
goCopy codepackage main

import (
	"fmt"
	"sync"
	"time"
)

func main() {
	var wg sync.WaitGroup
	var mu sync.Mutex

	for i := 0; i < 5; i   {
		wg.Add(1)
		go func(i int) {
			defer wg.Done()
			mu.Lock()
			defer mu.Unlock()
			fmt.Println("Goroutine", i, "is working.")
		}(i)
	}

	wg.Wait()
}

14. io - 输入输出操作

io 包提供了基本的输入输出接口,用于进行文件读写和数据流的处理。

代码语言:javascript复制
goCopy codepackage main

import (
	"fmt"
	"io/ioutil"
)

func main() {
	content := []byte("Hello, Golang!")

	err := ioutil.WriteFile("example.txt", content, 0644)
	if err != nil {
		panic(err)
	}

	readContent, err := ioutil.ReadFile("example.txt")
	if err != nil {
		panic(err)
	}

	fmt.Println("File content:", string(readContent))
}

15. strconv - 字符串转换

strconv 包提供了一系列函数,用于在基本数据类型和字符串之间进行转换。

代码语言:javascript复制
goCopy codepackage main

import (
	"fmt"
	"strconv"
)

func main() {
	str := "42"
	num, err := strconv.Atoi(str)
	if err == nil {
		fmt.Println("Converted number:", num)
	}

	// 整数转字符串
	newStr := strconv.Itoa(123)
	fmt.Println("Converted string:", newStr)
}

16. log - 日志记录

log 包用于输出日志信息,提供了一个简单的日志记录接口。

代码语言:javascript复制
goCopy codepackage main

import (
	"log"
)

func main() {
	log.Print("This is a log message.")
	log.Printf("Logging with format: %s", "Golang")
	log.Fatal("Fatal error. The program will exit.")
}

17. flag - 命令行参数解析

flag 包用于解析命令行参数,方便从命令行接收输入。

代码语言:javascript复制
goCopy codepackage main

import (
	"flag"
	"fmt"
)

func main() {
	var name string
	flag.StringVar(&name, "name", "Gopher", "Your name")
	flag.Parse()

	fmt.Println("Hello,", name)
}

18. context - 上下文管理

context 包提供了一种跨API边界、请求范围传递截止日期、取消信号和其他元数据的途径。

代码语言:javascript复制
goCopy codepackage main

import (
	"context"
	"fmt"
	"time"
)

func main() {
	ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second)
	defer cancel()

	select {
	case <-time.After(3 * time.Second):
		fmt.Println("Operation completed.")
	case <-ctx.Done():
		fmt.Println("Operation canceled:", ctx.Err())
	}
}

这些是一些基础常用的Go语言库及其用法,包括并发编程、输入输出、字符串转换、日志记录、命令行参数解析和上下文管理等方面。根据项目的具体需求,你可以选择适用的库来进行开发。

go

0 人点赞