当前位置: 首页 > news >正文

网站多国语言设计2022年房地产行业分析报告

网站多国语言设计,2022年房地产行业分析报告,网站顶部展出的大幅广告,怎么做网站平台梦想Go语言函数式编程库samber/lo 开发中,我们经常遇到一些操作,比如获取一个map的所有key,所有value,判断一个字符串是否出现在slice 中,slice中是否有重复元素等等。Go语言没有这样的操作,标准库也不提供。…

Go语言函数式编程库samber/lo

开发中,我们经常遇到一些操作,比如获取一个map的所有key,所有value,判断一个字符串是否出现在slice

中,slice中是否有重复元素等等。Go语言没有这样的操作,标准库也不提供。因此我们自己,或者团队会维护一

些这类操作的包。得益于Go泛型的发布,lo 就是这样的包,封装了大量简单操作,可以降低我们的代码量。

samber/lo 是一个基于Go 1.18+泛型的Lodash风格的Go库。

samber/lo文档地址:https://pkg.go.dev/github.com/samber/lo

samber/lo GitHub地址:https://github.com/samber/lo

除了 lo,Go官方也提供了一些实验性的包,比如 golang.org/x/exp/mapgolang.org/x/exp/slices 。这些包

针对特定的数据结构,更小,引入项目时更灵活,并且可能成为标准库的一部分,而 lo 则更全面。

1、安装

$ go get github.com/samber/lo@v1

2、简单使用

package mainimport ("fmt""github.com/samber/lo"
)func main(){names := lo.Uniq[string]([]string{"Samuel", "John", "Samuel"})// 2fmt.Println(len(names))// [Samuel John]fmt.Println(names)
}

我们可以导入所有的函数:

package mainimport ("fmt". "github.com/samber/lo"
)func main() {names := Uniq[string]([]string{"Samuel", "John", "Samuel"})// 2fmt.Println(len(names))// [Samuel John]fmt.Println(names)
}

3、部分功能介绍

3.1 Filter

根据条件对集合中的元素进行筛选。

package mainimport ("fmt""github.com/samber/lo"
)func main() {list := []int64{1, 2, 3, 4}// 返回可以被2整除的元素result := lo.Filter(list, func(nbr int64, index int) bool {return nbr%2 == 0})// [2 4]fmt.Printf("%v", result)
}

3.2 Map

遍历集合中的每一个元素并对集合中的每一个元素进行相同的操作。

package mainimport ("fmt""github.com/samber/lo"
)func main() {list := []int64{1, 2, 3, 4}// 集合的每个元素都乘以10result := lo.Map(list, func(x int64, index int) string {return fmt.Sprintf("%d", x*10)})// [10 20 30 40]fmt.Println(result)
}

并行处理:

package mainimport ("fmt"lop "github.com/samber/lo/parallel"
)func main() {list := []int64{1, 2, 3, 4}// 集合的每个元素都乘以10result := lop.Map(list, func(x int64, index int) string {return fmt.Sprintf("%d", x*10)})// [10 20 30 40]fmt.Println(result)
}

3.3 FilterMap

先根据条件对集合中的元素进行筛选。

然后遍历集合中的每一个元素并对集合中的每一个元素进行相同的操作。

package mainimport ("fmt""github.com/samber/lo"
)func main() {list := []int64{1, 2, 3, 4}// 先返回可以被2整除的元素,然后集合的每个元素都乘以10result := lo.FilterMap(list, func(nbr int64, index int) (string, bool) {return fmt.Sprintf("%d", nbr*10), nbr%2 == 0})// [20 40]fmt.Printf("%v", result)
}

3.4 Range/RangeFrom/RangeWithSteps

创建一个从开始到结束(不包括结束)的数字数组(正数和/或负数)。

package mainimport ("fmt""github.com/samber/lo"
)func main() {// [0 1 2 3]result1 := lo.Range(4)// [0 -1 -2 -3]result2 := lo.Range(-4)// [1 2 3 4 5]result3 := lo.RangeFrom(1, 5)// [1 2 3 4 5]result4 := lo.RangeFrom(1.0, 5)// [0 5 10 15]result5 := lo.RangeWithSteps(0, 20, 5)// [-1 -2 -3]result6 := lo.RangeWithSteps[float32](-1.0, -4.0, -1.0)// []result7 := lo.RangeWithSteps(1, 4, -1)// []result8 := lo.Range(0)fmt.Printf("%v\n", result1)fmt.Printf("%v\n", result2)fmt.Printf("%v\n", result3)fmt.Printf("%v\n", result4)fmt.Printf("%v\n", result5)fmt.Printf("%v\n", result6)fmt.Printf("%v\n", result7)fmt.Printf("%v\n", result8)
}

3.5 RandomString

返回指定长度的随机字符串,该字符串由指定的字符集组成。

package mainimport ("fmt""github.com/samber/lo"
)func main() {result := lo.RandomString(5, lo.LettersCharset)// XVlBzfmt.Printf("%v", result)
}

3.6 IsNotEmpty

如果参数为零值,则返回true。

package mainimport ("fmt""github.com/samber/lo"
)func main(){// falsefmt.Println(lo.IsNotEmpty(0))// truefmt.Println(lo.IsNotEmpty(42))// falsefmt.Println(lo.IsNotEmpty(""))// truefmt.Println(lo.IsNotEmpty("foobar"))type test struct {foobar string}// falsefmt.Println(lo.IsNotEmpty(test{foobar: ""}))// truefmt.Println(lo.IsNotEmpty(test{foobar: "foobar"}))
}

这里只是用举几个例子,lo 中支持超多的转化帮助函数供开发使用,如果有需要可以参考开发文档。

http://www.yayakq.cn/news/340583/

相关文章:

  • 做网站要几个人 要多少钱用了wordpress的网站
  • 网站展示型和营销型有什么区别国外购买空间的网站有哪些
  • c 购物网站开发流程图深圳网络品牌推广公司
  • 龙华做棋牌网站建设哪家便宜电子科技技术支持东莞网站建设
  • wordpress适用于图片站的主题爱媛直播
  • 做家教用什么网站贵州省建设厅网站文件
  • 找个小网站免费咨询聊天
  • 徐州网站建设方案优化企业管理软件系统
  • 专做国外采购的网站wordpress开发实战
  • 四川住房与城乡建设部网站交互界面设计
  • 昆山做网站的公司有哪些crm销售管理系统功能
  • wordpress 站点转移wordpress导入xml空白
  • 家具电商网站建设WordPress主题zero
  • 做网站需知网站开发 ssh 菜鸟
  • 网上教学网站建设静态网站建设实训报告
  • 深圳网站设计公司费用是六台阶客户管理软件
  • 苏州网站建设多少钱青岛网站建设软件下载
  • 自己做的网站如何连接入数据库wordpress子目录 多站点
  • vue大型网站开发吗wordpress编程
  • 网站推广费用预算字体logo设计在线生成
  • seo方案商城网站优化
  • 企业网站建设 管理 维护logo免费设计在线
  • 网站定制深圳网站flash导入页
  • 抖音营销推广方案seo赚钱
  • 青海公路建设信用信息服务网站电商具体是做什么的上班
  • wordpress开发视频网站模板下载金融电子商务网站建设
  • 手工做皮具国外的网站国内做音乐网站
  • 建设信源网站网站地图怎么制作
  • 网站公司企业网站计算机网站开发岗位有哪些
  • 下载整个网站的软件wordpress主题开发时间