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

湘潭网站建设 尖端磐石网络河南seo排名

湘潭网站建设 尖端磐石网络,河南seo排名,渭南网站建设费用明细,个人网页设计要素Go 1.21新增的 slices 包提供了很多和切片相关的函数#xff0c;可以用于任何类型的切片。 slices.BinarySearch 定义如下#xff1a; func BinarySearch[S ~[]E, E cmp.Ordered](x S, target E) (int, bool) 在已经排好序的切片#xff08;切片必须按递增顺序排序…Go 1.21新增的 slices 包提供了很多和切片相关的函数可以用于任何类型的切片。 slices.BinarySearch 定义如下 func BinarySearch[S ~[]E, E cmp.Ordered](x S, target E) (int, bool) 在已经排好序的切片切片必须按递增顺序排序中搜索目标如果找到了返回所在的位置和 true如果没有找到则返回目标应该被找到的位置和 false简单示例如下 package mainimport (fmtslices )func main() {names : []string{Alice, Bob, Vera}n, found : slices.BinarySearch(names, Vera)fmt.Println(Vera:, n, found) // Vera: 2 truen, found slices.BinarySearch(names, Bill)fmt.Println(Bill:, n, found) // Bill: 1 false } slices.BinarySearchFunc 定义如下 func BinarySearchFunc[S ~[]E, E, T any](x S, target T, cmp func(E, T) int) (int, bool) 作用类似 slices.BinarySearch不同的是使用自定义比较函数。切片必须按递增顺序排序其中“递增”是由cmp定义的。如果 slice 元素与目标匹配CMP应该返回 0如果 slice元素在目标之前则返回一个负数如果 slice 元素在目标之后则返回一个正数。CMP必须实现与片相同的排序这样如果CMP (a, t) 0且CMP (b, t) 0则切中的 a 必须位于 b 之前。 package mainimport (cmpfmtslices )func main() {type Person struct {Name stringAge int}people : []Person{{Alice, 55},{Bob, 24},{Gopher, 13},}n, found : slices.BinarySearchFunc(people, Person{Bob, 0}, func(a, b Person) int {return cmp.Compare(a.Name, b.Name)})fmt.Println(Bob:, n, found) // Bob: 1 true } slices.Clip 定义如下 func Clip[S ~[]E, E any](s S) S 从切片中删除未使用的容量返回 s[:len(s):len(s)]。简单示例如下 package mainimport (fmtslices )func main() {names : make([]string, 2, 5)names slices.Clip(names)fmt.Printf(长度%d,容量%d, len(names), cap(names))// 长度2,容量2 } slices.Clone 定义如下 func Clone[S ~[]E, E any](s S) S 返回切片的副本。因为元素是使用赋值方式复制的所以这是一个浅克隆。简单实用方法如下 package mainimport (fmtslices )func main() {names : []string{路多辛的博客, 路多辛的所思所想}namesCopy : slices.Clone(names)fmt.Println(namesCopy) } slices.Compact 定义如下 func Compact[S ~[]E, E comparable](s S) S 将连续出现的元素变为一个类似于 Unix 上的 uniq 命令。Compact 会修改片的内容并返回修改后的片长度可能会变得更小。简单示例如下 package mainimport (fmtslices )func main() {seq : []int{0, 1, 1, 2, 5, 5, 5, 8}seq slices.Compact(seq)fmt.Println(seq) // [0 1 2 5 8] } slices.CompactFunc 定义如下 func CompactFunc[S ~[]E, E any](s S, eq func(E, E) bool) S 类似于 slices.Compact不同的是使用自定义的函数来比较元素。如果元素的运行结果相等CompactFunc 将保留第一个元素。简单示例如下 package mainimport (fmtslicesstrings )func main() {names : []string{bob, Bob, alice, Vera, VERA}names slices.CompactFunc(names, func(a, b string) bool {return strings.ToLower(a) strings.ToLower(b)})fmt.Println(names) // [bob alice Vera] } slices.Compare 定义如下 func Compare[S ~[]E, E cmp.Ordered](s1, s2 S) int 使用 cmp.Compare函数来比较 s1 和 s2 的元素。按照顺序比较每一对元素直到一个元素不等于另一个元素。返回第一个不匹配元素的结果。如果两个切片在其中一个结束之前相等则认为较短的切片小于较长的切片。如果 s1 s2结果为0如果 s1 s2结果为-1如果 s1 s2结果为1。 package mainimport (fmtslices )func main() {names : []string{Alice, Bob, Vera}fmt.Println(Equal:, slices.Compare(names, []string{Alice, Bob, Vera}))fmt.Println(V X:, slices.Compare(names, []string{Alice, Bob, Xena}))fmt.Println(V C:, slices.Compare(names, []string{Alice, Bob, Cat}))fmt.Println(3 2:, slices.Compare(names, []string{Alice, Bob})) } 运行结果如下 Equal: 0 V X: -1 V C: 1 3 2: 1 slices.CompareFunc 定义如下 func CompareFunc[S1 ~[]E1, S2 ~[]E2, E1, E2 any](s1 S1, s2 S2, cmp func(E1, E2) int) int 类似于 slices.Compare不同的是使用自定义的比较函数进行比较。结果是 cmp 的第一个非零结果如果 cmp 总是返回0则如果 len(s1) len(s2) 结果为0如果len(s1) len(s2)结果为-1如果 len(s1) len(s2) 结果为1。简单示例如下 package mainimport (cmpfmtslicesstrconv )func main() {numbers : []int{0, 43, 8}strings : []string{0, 0, 8}result : slices.CompareFunc(numbers, strings, func(n int, s string) int {sn, err : strconv.Atoi(s)if err ! nil {return 1}return cmp.Compare(n, sn)})fmt.Println(result) // 1 } slices.Contains 定义如下 func Contains[S ~[]E, E comparable](s S, v E) bool 用于判断 s 是否包含 v。简单示例如下 package mainimport (fmtslices )func main() {names : []string{Alice, Bob, Vera}fmt.Println(slices.Contains(names, Bob)) // true } slices.ContainsFunc 定义如下 func ContainsFunc[S ~[]E, E any](s S, f func(E) bool) bool 用于判断 s 中是否至少有一个元素 e 满足 f(e)。简单示例如下 package mainimport (fmtslices )func main() {numbers : []int{0, 42, -10, 8}hasNegative : slices.ContainsFunc(numbers, func(n int) bool {return n 0})fmt.Println(Has a negative:, hasNegative)// truehasOdd : slices.ContainsFunc(numbers, func(n int) bool {return n%2 ! 0})fmt.Println(Has an odd number:, hasOdd) // false } 【参考资料】 Package sliceshttps://golang.google.cn/pkg/slices/
http://www.yutouwan.com/news/112140/

相关文章:

  • 网站备案成功后怎么建设ui设计加班很严重
  • 医疗网站怎么做优化深圳建设工程信息网站
  • 如何做京东商城一样的网站优化seo系统
  • 河北省网站备案步骤龙元建设集团股份有限公司网站地址
  • 网站开发工具的功能高邮网站建设
  • 新手做网站买服务器6做网站
  • 犀牛云网站建设公司牌子制作
  • 域名后缀html是怎样的网站织梦和wordpress
  • 南京网站设计个人wordpress 颜色插件
  • 站长推荐产品西安网站建设方案维护
  • 如何自己做网站知识o2o网站设计
  • 企业seo网站优化设计百度网盘网页版登录入口
  • 公司网站费用构成需要多少钱pageadmin做网站
  • 听歌网站源码扶风网站开发
  • 企业网站建设平台建设招标网官网
  • 怎样建设智能网站广州php网站建设
  • 手机网站下拉刷新yum wordpress php扩展
  • l凉州区城乡建设部网站首页南宁网站推广哪家好
  • 怎么才能成功做网站商丘网站制作的流程
  • 定制软件公司医院网站优化策划
  • 做网站安阳中建西部建设北方有限公司网站
  • 网站建设塞西wordpress 前台投稿插件
  • 上海网站建设选缘魁-企查wordpress分类更改
  • php直播网站开发网站开发菜鸟适合用什么软件
  • 品牌网站建设有哪些内容seo技术秋蝉
  • 网站核验单下载wordpress用什么主机好
  • 网站首页建设中页面大连甘井子区教育公共服务平台
  • 青岛做网站皆赴青岛博采深圳自适应网站的公司
  • 新手网站设计定价吉林电商网站建设公司哪家好
  • 如何做正规电影网站湖北省建设部网站