介绍

在 Go 语言的开发过程中,我们经常需要使用一些常用的工具函数来简化代码编写和提高开发效率。 samber/lo 是一个类似于 JavaScript 中的 Lodash 库的 Go 语言库, 它提供了许多实用的函数和工具,帮助开发人员更轻松地处理各种常见任务。 本篇博文将简单介绍 samber/lo 库的特性和使用方法。

特性

samber/lo 库是基于Go 1.18+泛型的、Lodash风格的Go语言库。

包含了非常多的方法,使得它成为一个强大且实用的工具库:

  1. slice 辅助方法
  2. map 辅助方法
  3. math 辅助方法
  4. strings 辅助方法
  5. tuples 辅助方法
  6. channels 辅助方法
  7. intersection 辅助方法
  8. search 辅助方法
  9. conditional 辅助方法
  10. concurrency 等辅助方法

使用

  1. 安装
1
go get github.com/samber/lo
  1. 使用
1
"github.com/samber/lo"
  1. 示例
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
package main

import (
	"fmt"
	"github.com/samber/lo"
)

func main() {
	values := lo.Values[string, int](map[string]int{"foo": 1, "bar": 2})
	fmt.Println(values) // 输出 [1 2]
	
	l := []int{1, 2, 3, 4, 5}

	// 使用 samber/lo 库的 Map 函数将切片中的每个元素加倍
	result := lo.Map(l, func(x int, _ int) int {
		return x * 2
	})

	fmt.Println(result) // 输出 [2 4 6 8 10]
}

play

总结

samber/lo 是一个类似于 Lodash 的 Go 库,提供了丰富的函数和工具, 帮助开发人员更轻松地处理常见任务。通过函数式编程风格、slice处理、map处理、 集合操作,搜索操作等特性, samber/lo 可以大大简化开发过程,提高代码的可读性和可维护性。

更多用法自己去 https://github.com/samber/lo探索吧。