golang一些常用库(3)

2024-02-04 16:28:48 浏览数 (1)

crypto/rand 包提供了生成加密安全的伪随机数的功能。

代码语言:javascript复制
goCopy codepackage main

import (
	"crypto/rand"
	"encoding/hex"
	"fmt"
)

func main() {
	randomBytes := make([]byte, 8)
	_, err := rand.Read(randomBytes)
	if err != nil {
		panic(err)
	}

	randomHex := hex.EncodeToString(randomBytes)
	fmt.Println("Random Hex:", randomHex)
}

20. os/exec - 执行外部命令

os/exec 包允许你在Go程序中执行外部命令。

代码语言:javascript复制
goCopy codepackage main

import (
	"fmt"
	"os/exec"
)

func main() {
	cmd := exec.Command("ls", "-l")
	output, err := cmd.Output()
	if err != nil {
		panic(err)
	}

	fmt.Println("Command output:")
	fmt.Println(string(output))
}

21. html/template - HTML模板

html/template 包提供了用于安全地渲染HTML模板的功能。

代码语言:javascript复制
goCopy codepackage main

import (
	"html/template"
	"os"
)

type Person struct {
	Name string
	Age  int
}

func main() {
	tmpl := template.Must(template.New("example").Parse("Hello, {{.Name}}! You are {{.Age}} years old.n"))

	person := Person{"Alice", 30}
	err := tmpl.Execute(os.Stdout, person)
	if err != nil {
		panic(err)
	}
}

22. github.com/spf13/cobra - 命令行应用程序框架

Cobra 是一个用于构建强大的命令行应用程序的库。

代码语言:javascript复制
goCopy codepackage main

import (
	"fmt"
	"github.com/spf13/cobra"
)

func main() {
	var rootCmd = &cobra.Command{Use: "app"}

	var cmdHello = &cobra.Command{
		Use:   "hello",
		Short: "Prints 'Hello, Gopher!'",
		Run: func(cmd *cobra.Command, args []string) {
			fmt.Println("Hello, Gopher!")
		},
	}

	rootCmd.AddCommand(cmdHello)
	rootCmd.Execute()
}

23. github.com/go-chi/chi - 轻量级HTTP路由器

Chi 是一个轻量级、灵活的HTTP路由器。

代码语言:javascript复制
goCopy codepackage main

import (
	"net/http"
	"github.com/go-chi/chi"
)

func main() {
	r := chi.NewRouter()

	r.Get("/", func(w http.ResponseWriter, r *http.Request) {
		w.Write([]byte("Hello, Chi!"))
	})

	http.ListenAndServe(":8080", r)
}

24. github.com/go-playground/validator - 结构体验证器

Validator 提供了用于验证结构体字段的功能。

代码语言:javascript复制
goCopy codepackage main

import (
	"fmt"
	"github.com/go-playground/validator/v10"
)

type User struct {
	Name  string `validate:"required"`
	Email string `validate:"required,email"`
	Age   int    `validate:"gte=0,lte=130"`
}

func main() {
	v := validator.New()
	user := User{Name: "John", Email: "john@example", Age: 25}

	err := v.Struct(user)
	if err != nil {
		for _, err := range err.(validator.ValidationErrors) {
			fmt.Println(err.Namespace(), err.Field(), err.Tag())
		}
	}
}

这些是另一批基础常用的Go语言库及其用法,包括生成随机数、执行外部命令、HTML模板、命令行应用程序框架、HTTP路由器和结构体验证器等方面。根据项目的具体需求,你可以选择适用的库来进行开发。

go

0 人点赞