婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > golang 刪除切片的某個元素及剔除切片內的零值方式

golang 刪除切片的某個元素及剔除切片內的零值方式

熱門標簽:仙桃400電話辦理 地圖標注免費定制店 寧波語音外呼系統公司 宿遷便宜外呼系統代理商 上海極信防封電銷卡價格 不封卡外呼系統 湛江crm外呼系統排名 鄭州智能語音電銷機器人價格 重慶慶云企業400電話到哪申請

看代碼吧~

func remove(slice []interface{}, elem interface{}) []interface{}{
    if len(slice) == 0 {
        return slice
    }
    for i, v := range slice {
        if v == elem {
            slice = append(slice[:i], slice[i+1:]...)
            return remove(slice,elem)
            break
        }
    }
    return slice
}
func removeZero(slice []interface{}) []interface{}{
    if len(slice) == 0 {
        return slice
    }
    for i, v := range slice {
        if ifZero(v) {
            slice = append(slice[:i], slice[i+1:]...)
            return removeZero(slice)
            break
        }
    }
    return slice
}
//判斷一個值是否為零值,只支持string,float,int,time 以及其各自的指針,"%"和"%%"也屬于零值范疇,場景是like語句
func IfZero(arg interface{}) bool {
    if arg == nil {
        return true
    }
    switch v := arg.(type) {
    case int, int32, int16, int64:
        if v == 0 {
            return true
        }
    case float32:
        r:=float64(v)
        return math.Abs(r-0)0.0000001
    case float64:
        return math.Abs(v-0)0.0000001
    case string:
        if v == "" || v == "%%" || v == "%" {
            return true
        }
    case *string, *int, *int64, *int32, *int16, *int8, *float32, *float64, *time.Time:
        if v == nil {
            return true
        }
    case time.Time:
        return v.IsZero()
    default:
        return false
    }
    return false
}

補充:golang刪除slice中特定條件的元素,優化版

寫了兩種對一個slice中刪除特定元素的方法,并做了性能對比,在這里記錄一下。

假設我們的切片有0和1,我們要刪除所有的0,此處有三種方法:

第一種方法:

func DeleteSlice(a []int) []int{
 for i := 0; i  len(a); i++ {
  if a[i] == 0 {
   a = append(a[:i], a[i+1:]...)
   i--
  }
 }
 return a
}

解釋:這里利用常見的方法對slice中的元素進行刪除,注意刪除時,后面的元素前移,i應該后移一位。

第二種方法:

func DeleteSlice1(a []int) []int {
 ret := make([]int, 0, len(a))
 for _, val := range a {
  if val == 1 {
   ret = append(ret, val)
  }
 }
 return ret
}

解釋:這種方法最容易理解,重新使用一個slice,將不合理的過濾掉。缺點是需要開辟另一個slice的空間,優點是容易理解,而且不對原來的slice進行操作。

第三種方法:

func DeleteSlice2(a []int) []int{
 j := 0
 for _, val := range a {
  if val == 1 {
   a[j] = val
   j++
  }
 }
 return a[:j]
}

解釋:這里利用一個index,記錄應該下一個有效元素應該在的位置,遍歷所有元素,當遇到有效元素,index加一,否則不加,最終index的位置就是所有有效元素的下一個位置。最后做一個截取就行了。這種方法會對原來的slice進行修改。

這里對三種方法做了性能測試,測試代碼如下:

package main 
import (
 "testing"
)
 
func handle(data []int) {
 return
}
const N = 100
 
func getSlice()[]int {
 a := []int{}
 for i := 0; i  N; i++ {
  if i % 2 == 0 {
   a = append(a, 0)
  } else {
   a = append(a, 1)
  }
 }
 return a
}
 
func BenchmarkDeleteSlice(b *testing.B) {
 for i := 0; i  b.N; i++ {
   data := DeleteSlice(getSlice())
   handle(data)
 }
}
 
func BenchmarkDeleteSlice1(b *testing.B) {
 for i := 0; i  b.N; i++ {
  data := DeleteSlice1(getSlice())
  handle(data)
 }
}
 
func BenchmarkDeleteSlice2(b *testing.B) {
 for i := 0; i  b.N; i++ {
  data := DeleteSlice2(getSlice())
  handle(data)
 }
}

測試結果如下(slice大小為100):

加大slice大小進行測試(slice大小為10000):

繼續加大(slice大小為100000)

slice大小為10^6:

可以看出:

第一種方法在slice大小比較小時,比第2、3種方法慢一倍左右。但是slice大小變大時,性能顯著下降。

第2種方法和第3種方法差距基本處于同一量級,但是第3種方法稍快一些。但是當slice大小增加到10^6級別時,第三種方法的優勢就顯現出來。

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • Golang 刪除文件并遞歸刪除空目錄的操作
  • Golang 文件操作:刪除指定的文件方式
  • python/golang 刪除鏈表中的元素
  • Golang slice切片操作之切片的追加、刪除、插入等
  • golang針對map的判斷,刪除操作示例
  • Golang編程實現刪除字符串中出現次數最少字符的方法
  • golang 如何刪除二進制文件中的源碼路徑信息

標簽:吐魯番 雞西 欽州 蘭州 汕頭 梅河口 銅川 重慶

巨人網絡通訊聲明:本文標題《golang 刪除切片的某個元素及剔除切片內的零值方式》,本文關鍵詞  golang,刪除,切片,的,某個,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《golang 刪除切片的某個元素及剔除切片內的零值方式》相關的同類信息!
  • 本頁收集關于golang 刪除切片的某個元素及剔除切片內的零值方式的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    欧美男生操女生| 中国色在线观看另类| 久久九九99视频| 亚洲午夜久久久久久久久电影院 | 亚洲欧洲精品一区二区精品久久久| 福利一区二区在线观看| 成人精品免费网站| 亚洲精品在线观看视频| 亚洲成a人片在线不卡一二三区| 欧美日韩精品一区二区三区| 激情亚洲综合在线| 韩国v欧美v亚洲v日本v| 成人av免费在线播放| 久久精品日韩一区二区三区| 懂色av一区二区三区蜜臀| 九九**精品视频免费播放| 亚洲成人777| 欧美日韩精品欧美日韩精品一综合| 精品奇米国产一区二区三区| 欧美片网站yy| 午夜欧美2019年伦理| 亚洲精品日韩一| 国产色婷婷亚洲99精品小说| 2023国产精品自拍| 色哟哟国产精品免费观看| 一本一本久久a久久精品综合麻豆| 国产一区二区三区在线观看免费| 国产在线国偷精品免费看| 日韩av一级片| 国产精品亚洲专一区二区三区 | 亚洲国产日韩综合久久精品| 欧美美女一区二区三区| 午夜精品久久久久久久| 中文字幕一区在线| 色哟哟一区二区在线观看| 在线精品视频免费播放| 国产精品色哟哟网站| 亚洲成精国产精品女| 欧美性三三影院| 91精品国产综合久久久久久| 亚洲老妇xxxxxx| 亚洲丝袜精品丝袜在线| 免费人成精品欧美精品| jlzzjlzz亚洲女人18| 精品91自产拍在线观看一区| 成人app在线| 中文字幕一区二区三区四区| 成人av电影免费在线播放| 精品嫩草影院久久| 国产在线视频一区二区| 国产成人精品一区二区三区四区| 欧美精选在线播放| 91老师片黄在线观看| 污片在线观看一区二区 | 麻豆成人综合网| 欧美日韩成人激情| 成人av免费网站| 精品日韩欧美一区二区| 欧美精品一区视频| 欧美吻胸吃奶大尺度电影| 日本中文字幕一区| 中文字幕在线观看不卡| 色婷婷久久久综合中文字幕 | 午夜视频在线观看一区二区| 欧美一区二区视频在线观看2020 | 5858s免费视频成人| 国产九色sp调教91| 亚洲小说春色综合另类电影| 欧美日韩一区二区三区四区五区| 美腿丝袜一区二区三区| 日韩一区二区三区四区| 日韩无一区二区| 国产曰批免费观看久久久| 亚洲自拍偷拍九九九| 国产欧美一区在线| 久久久久久综合| 精品美女一区二区三区| 91丝袜国产在线播放| 精品一区二区三区视频在线观看 | 亚洲成人av资源| 国产午夜精品一区二区三区视频| 欧美色男人天堂| 欧美日韩精品一区视频| 99久久99久久精品国产片果冻| 久久国产免费看| 蜜桃视频在线一区| 美洲天堂一区二卡三卡四卡视频| 亚洲一区二区三区免费视频| 国产精品色在线| 亚洲国产成人午夜在线一区| 国产日产欧美一区| 国产网站一区二区三区| 国产校园另类小说区| 欧美精品 国产精品| 91精品国产综合久久国产大片| 91久久精品一区二区三区| www.欧美亚洲| 欧美三电影在线| 欧美日韩国产综合一区二区三区| 欧美午夜理伦三级在线观看| 欧美日韩精品一区二区天天拍小说| 日韩一区二区视频| 精品亚洲成a人在线观看| 中文字幕不卡在线| 国产精品丝袜黑色高跟| 欧美中文字幕一区二区三区 | 亚洲精品国产精华液| 欧美亚洲动漫精品| 日韩女优视频免费观看| 欧美女孩性生活视频| 欧美日韩一区高清| 国产日韩欧美电影| 免费成人你懂的| 成人午夜视频网站| 色综合欧美在线| 色婷婷国产精品| 国产丝袜美腿一区二区三区| 亚洲黄色免费网站| 国产在线看一区| 欧美日韩免费一区二区三区视频| 国产精品理伦片| 日日夜夜免费精品| 不卡一区在线观看| 日韩一区二区免费电影| 午夜精品久久久久久不卡8050| 麻豆国产精品777777在线| 色拍拍在线精品视频8848| 欧美电影免费观看高清完整版| 久久久久久久久99精品| 亚洲国产毛片aaaaa无费看 | 一本久道中文字幕精品亚洲嫩| 久久久久久久久97黄色工厂| 欧美性受极品xxxx喷水| 26uuu另类欧美| 午夜电影一区二区| 精品亚洲成a人| 欧美猛男超大videosgay| 国产精品久久久久久久久晋中| 床上的激情91.| 欧美一区二区啪啪| 欧美岛国在线观看| 婷婷一区二区三区| 色综合中文字幕| 这里只有精品免费| 欧美不卡激情三级在线观看| 亚洲国产精品久久久男人的天堂| 欧洲亚洲国产日韩| 五月婷婷激情综合| 欧美疯狂做受xxxx富婆| 亚洲高清视频在线| 色综合一个色综合| 亚洲曰韩产成在线| 99精品久久免费看蜜臀剧情介绍| www国产精品av| 国产综合色在线视频区| 欧美日韩一区二区欧美激情| 国产日韩欧美a| 91精彩视频在线观看| 日韩在线卡一卡二| 99久久精品免费看国产| 欧美极品aⅴ影院| 91影视在线播放| 精品区一区二区| 国产麻豆日韩欧美久久| 精品卡一卡二卡三卡四在线| 性感美女久久精品| 欧美日韩精品二区第二页| 欧美日本乱大交xxxxx| 欧美美女一区二区在线观看| 国产在线国偷精品免费看| 91年精品国产| 色屁屁一区二区| 国产一区二区三区免费在线观看| 91国偷自产一区二区三区成为亚洲经典| 久久久99精品久久| 国产成人精品一区二| 欧美国产日产图区| 一区二区成人在线| 欧美丰满少妇xxxxx高潮对白 | 波多野结衣中文字幕一区二区三区 | 国产精品久久久久久久久动漫| 亚洲一区二区三区四区在线| 最新久久zyz资源站| 中文字幕亚洲成人| 欧美电影一区二区| 一区二区免费视频| 日本不卡在线视频| 精品精品欲导航| 51精品久久久久久久蜜臀| 国产精品欧美经典| 日韩高清一区在线| 99精品视频一区| 丁香另类激情小说| 国产色产综合色产在线视频| 丁香婷婷综合色啪| 国产不卡视频一区二区三区| 欧美性大战xxxxx久久久| 免费一级片91| 一本久久精品一区二区| 午夜免费久久看|