成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Go 泛型:Maps 包正式釋出,現在可用!

開發 后端
給大家帶來一個關于泛型的新消息,那就是:在幾天前,Go 泛型的配套標準庫 golang.org/x/exp/maps 包已經正式提交,放出來了,可以使用。

[[437742]]

本文轉載自微信公眾號「腦子進煎魚了」,作者 陳煎魚   。轉載本文請聯系腦子進煎魚了公眾號。

大家好,我是煎魚。

給大家帶來一個關于泛型的新消息,那就是:在幾天前,Go 泛型的配套標準庫 golang.org/x/exp/maps 包已經正式提交,放出來了,可以使用。

如下圖:

cs.opensource.google

包代碼如下:

  1. package maps 
  2.  
  3. func Keys[M ~map[K]V, K comparable, V any](m M) []K { 
  4.  r := make([]K, 0, len(m)) 
  5.  for k := range m { 
  6.   r = append(r, k) 
  7.  } 
  8.  return r 
  9.  
  10. func Values[M ~map[K]V, K comparable, V any](m M) []V { 
  11.  r := make([]V, 0, len(m)) 
  12.  for _, v := range m { 
  13.   r = append(r, v) 
  14.  } 
  15.  return r 
  16.  
  17. func Equal[M1, M2 ~map[K]V, K, V comparable](m1 M1, m2 M2) bool { 
  18.  if len(m1) != len(m2) { 
  19.   return false 
  20.  } 
  21.  for k, v1 := range m1 { 
  22.   if v2, ok := m2[k]; !ok || v1 != v2 { 
  23.    return false 
  24.   } 
  25.  } 
  26.  return true 
  27.  
  28. func EqualFunc[M1 ~map[K]V1, M2 ~map[K]V2, K comparable, V1, V2 any](m1 M1, m2 M2, eq func(V1, V2) bool) bool { 
  29.  if len(m1) != len(m2) { 
  30.   return false 
  31.  } 
  32.  for k, v1 := range m1 { 
  33.   if v2, ok := m2[k]; !ok || !eq(v1, v2) { 
  34.    return false 
  35.   } 
  36.  } 
  37.  return true 
  38.  
  39. func DeleteFunc[M ~map[K]V, K comparable, V any](m M, del func(K, V) bool) { 
  40.  for k, v := range m { 
  41.   if del(k, v) { 
  42.    delete(m, k) 
  43.   } 
  44.  } 
  • Keys:返回 map 的鍵值內容,鍵值將以不確定的順序出現。
  • Values:返回 map 的值,值將以不確定的順序出現。
  • Equal:檢查兩個地圖是否包含相同的鍵/值對,內部會使用 == 來比較數值。
  • EqualFunc:EqualFunc與 Equal 方法類似,但使用閉包方法來比較數值,鍵值仍然用 == 來比較。
  • DeleteFunc:刪除 map 中閉包方法返回 true 的任何鍵/值對。
  1. func Clear[M ~map[K]V, K comparable, V any](m M) { 
  2.  for k := range m { 
  3.   delete(m, k) 
  4.  } 
  5.  
  6. func Clone[M ~map[K]V, K comparable, V any](m M) M { 
  7.  r := make(M, len(m)) 
  8.  for k, v := range m { 
  9.   r[k] = v 
  10.  } 
  11.  return r 
  12.  
  13. func Copy[M ~map[K]V, K comparable, V any](dst, src M) { 
  14.  for k, v := range src { 
  15.   dst[k] = v 
  16.  } 

Clear:清除從 map 中刪除所有條目,使之為空。

Clone:返回一個 map 的副本,這是一個淺層克隆,新拷貝出來的的鍵和值使用普通的賦值來設置。

Copy:復制 src 中的所有鍵/值對,并將其加入 dst。當 src 中的一個鍵已經存在于 dst 中時,dst 中的值將被與 src 中的鍵相關的值所覆蓋。

 

本次 Go 泛型庫 maps 的更新,主要包含了泛型最新的特性的迭代,也就是 “近似元素”,源碼地址:https://cs.opensource.google/go/x/exp/+/master:maps/maps.go。

 

責任編輯:武曉燕 來源: 腦子進煎魚了
相關推薦

2021-12-05 23:45:23

Go泛型Maps

2021-08-09 10:36:20

GoSlices Maps

2021-12-15 10:23:56

Go 1.18 Bet語言泛型

2021-11-27 22:20:13

SlicesGo泛型

2021-01-14 05:20:48

Go語言泛型

2021-09-29 18:17:30

Go泛型語言

2022-03-18 18:00:00

編程語言泛型支持模糊測試

2020-11-24 13:05:35

Go語言泛型

2024-10-28 00:40:49

Go語法版本

2022-04-28 12:00:34

Go泛型版排序

2023-11-03 14:02:04

Go切片泛型庫

2022-03-28 13:34:26

Go泛型部署泛型

2023-11-29 08:19:45

Go泛型缺陷

2024-12-30 11:05:28

泛型Go類型別名

2022-04-15 09:55:59

Go 泛型Go 程序函數

2023-05-05 08:51:18

Go語言泛型

2013-10-18 14:29:07

Ubuntu 13.1

2022-03-29 11:48:40

Go泛型測試

2021-11-01 12:41:39

Go

2021-12-30 18:34:29

緩存GoSinglefligh
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩激情一区 | 亚洲国产aⅴ成人精品无吗 欧美激情欧美激情在线五月 | 亚洲三级av| 又爽又黄axxx片免费观看 | 在线看av网址 | 欧美福利 | 亚洲一区影院 | 欧美精品中文字幕久久二区 | 国产亚洲精品久久久久久豆腐 | 天天综合永久入口 | 国产午夜精品一区二区三区嫩草 | 在线成人免费观看 | 久久精品色欧美aⅴ一区二区 | 五月综合激情网 | 久久精品一区二区三区四区 | 国产成人在线视频 | 日韩在线视频一区二区三区 | 嫩草研究影院 | 青春草国产 | 久视频在线 | 97视频精品| 久久精品一 | 91精品久久久久久久99 | 91精品国产综合久久久久 | 日本aⅴ中文字幕 | 久久亚洲一区 | 日本在线你懂的 | 日韩福利电影 | 国产黄色大片在线免费观看 | a视频在线 | 亚洲综合国产精品 | 天天综合久久 | 欧美中文字幕 | 黄色免费在线观看网站 | 亚洲永久在线 | 色一阁 | 成人免费看黄网站在线观看 | 在线免费观看欧美 | 九九热在线视频观看这里只有精品 | 中文在线www | 日本成人免费网站 |