国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

腳本之家,腳本語言編程技術(shù)及教程分享平臺!
分類導(dǎo)航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務(wù)器之家 - 腳本之家 - Golang - golang 數(shù)組隨機(jī)排序的實(shí)現(xiàn)

golang 數(shù)組隨機(jī)排序的實(shí)現(xiàn)

2022-01-26 11:19董洪臣 Golang

本文主要介紹了golang 數(shù)組隨機(jī)排序的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

前言

目前接到一個(gè)推薦數(shù)據(jù)的需求,需要將數(shù)據(jù)庫中獲取到的數(shù)據(jù)進(jìn)行隨機(jī)排序后返回給用戶。考慮了一下,有兩種使用方式,一種是通過數(shù)據(jù)庫 order by rand() ,還有一種就是本文需要使用到的代碼處理

具體實(shí)現(xiàn)步驟如下

1.引入庫

代碼如下:

?
1
2
3
4
5
import (
 "fmt"
 "math/rand"
 "time"
)

2.組裝數(shù)據(jù)并排序(方案一)

代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
type CategoryEntity struct {
 GrouponId     int64  //團(tuán)ID
 MerchandiseId int64  //商品ID
 CategoryId    int64  //分類ID
 CategoryTitle string //分類名稱
}
 
func main() {
 data := make([]CategoryEntity, 10)
 data[0] = CategoryEntity{GrouponId: 0, MerchandiseId: 1117891, CategoryId: 726, CategoryTitle: "蔬菜"}
 data[1] = CategoryEntity{GrouponId: 1, MerchandiseId: 1110162, CategoryId: 1505, CategoryTitle: "調(diào)料調(diào)味"}
 data[2] = CategoryEntity{GrouponId: 2, MerchandiseId: 1117822, CategoryId: 746, CategoryTitle: "水果"}
 data[3] = CategoryEntity{GrouponId: 3, MerchandiseId: 1115770, CategoryId: 1408, CategoryTitle: "個(gè)人護(hù)理"}
 data[4] = CategoryEntity{GrouponId: 4, MerchandiseId: 1116528, CategoryId: 732, CategoryTitle: "肉"}
 data[5] = CategoryEntity{GrouponId: 5, MerchandiseId: 1116526, CategoryId: 727, CategoryTitle: "休閑食品"}
 data[6] = CategoryEntity{GrouponId: 6, MerchandiseId: 1117188, CategoryId: 728, CategoryTitle: "糧油調(diào)味"}
 data[7] = CategoryEntity{GrouponId: 7, MerchandiseId: 1117379, CategoryId: 726, CategoryTitle: "蔬菜"}
 data[8] = CategoryEntity{GrouponId: 8, MerchandiseId: 1118166, CategoryId: 1005, CategoryTitle: "居家百貨"}
 data[9] = CategoryEntity{GrouponId: 9, MerchandiseId: 1117377, CategoryId: 746, CategoryTitle: "水果"}
 
 fmt.Println("隨機(jī)前:", data)
 //如果不使用rand.Seed(seed int64),每次運(yùn)行,得到的隨機(jī)數(shù)會一樣
 rand.Seed(time.Now().Unix())
 //采用rand.Shuffle,將切片隨機(jī)化處理后返回
 rand.Shuffle(len(data), func(i, j int) { data[i], data[j] = data[j], data[i] })
 fmt.Println("隨機(jī)后:", data)
}

3.組裝數(shù)據(jù)并排序(方案二)

代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
type CategoryEntity struct {
 GrouponId     int64  //團(tuán)ID
 MerchandiseId int64  //商品ID
 CategoryId    int64  //分類ID
 CategoryTitle string //分類名稱
}
 
func main() {
 data := make([]CategoryEntity, 10)
 data[0] = CategoryEntity{GrouponId: 0, MerchandiseId: 1117891, CategoryId: 726, CategoryTitle: "蔬菜"}
 data[1] = CategoryEntity{GrouponId: 1, MerchandiseId: 1110162, CategoryId: 1505, CategoryTitle: "調(diào)料調(diào)味"}
 data[2] = CategoryEntity{GrouponId: 2, MerchandiseId: 1117822, CategoryId: 746, CategoryTitle: "水果"}
 data[3] = CategoryEntity{GrouponId: 3, MerchandiseId: 1115770, CategoryId: 1408, CategoryTitle: "個(gè)人護(hù)理"}
 data[4] = CategoryEntity{GrouponId: 4, MerchandiseId: 1116528, CategoryId: 732, CategoryTitle: "肉"}
 data[5] = CategoryEntity{GrouponId: 5, MerchandiseId: 1116526, CategoryId: 727, CategoryTitle: "休閑食品"}
 data[6] = CategoryEntity{GrouponId: 6, MerchandiseId: 1117188, CategoryId: 728, CategoryTitle: "糧油調(diào)味"}
 data[7] = CategoryEntity{GrouponId: 7, MerchandiseId: 1117379, CategoryId: 726, CategoryTitle: "蔬菜"}
 data[8] = CategoryEntity{GrouponId: 8, MerchandiseId: 1118166, CategoryId: 1005, CategoryTitle: "居家百貨"}
 data[9] = CategoryEntity{GrouponId: 9, MerchandiseId: 1117377, CategoryId: 746, CategoryTitle: "水果"}
 
 fmt.Println("隨機(jī)前:", data)
 //如果不使用rand.Seed(seed int64),每次運(yùn)行,得到的隨機(jī)數(shù)會一樣
 rand.Seed(time.Now().Unix())
 length := len(data)
 for i := 0; i < length; i++ {
  exchange(data, rand.Intn(length), i)
 }
 
 fmt.Println("隨機(jī)后:", data)
}
 
// 交換數(shù)據(jù)
func exchange(data []CategoryEntity, i, j int) {
 data[i], data[j] = data[j], data[i]
}

總結(jié)

整體比較簡單,但是需要注意的有兩點(diǎn):

1:golang中 rand的使用方式,如果不使用rand.Seed(seed int64),每次運(yùn)行,得到的隨機(jī)數(shù)會一樣

2:方案一種采用rand.Shuffle+匿名函數(shù),將切片隨機(jī)化處理后返回。

3:方案二使用golang特有的數(shù)組交換方式:

?
1
2
3
func exchange(data []CategoryEntity, i, j int) {
 data[i], data[j] = data[j], data[i]
}

到此這篇關(guān)于golang 數(shù)組隨機(jī)排序的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)golang 數(shù)組隨機(jī)排序內(nèi)容請搜索服務(wù)器之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持服務(wù)器之家!

原文鏈接:https://blog.csdn.net/dong945221578/article/details/116067051

延伸 · 閱讀

精彩推薦
  • Golanggo語言制作端口掃描器

    go語言制作端口掃描器

    本文給大家分享的是使用go語言編寫的TCP端口掃描器,可以選擇IP范圍,掃描的端口,以及多線程,有需要的小伙伴可以參考下。 ...

    腳本之家3642020-04-25
  • Golanggo日志系統(tǒng)logrus顯示文件和行號的操作

    go日志系統(tǒng)logrus顯示文件和行號的操作

    這篇文章主要介紹了go日志系統(tǒng)logrus顯示文件和行號的操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧...

    SmallQinYan12302021-02-02
  • GolangGolang通脈之?dāng)?shù)據(jù)類型詳情

    Golang通脈之?dāng)?shù)據(jù)類型詳情

    這篇文章主要介紹了Golang通脈之?dāng)?shù)據(jù)類型,在編程語言中標(biāo)識符就是定義的具有某種意義的詞,比如變量名、常量名、函數(shù)名等等,Go語言中標(biāo)識符允許由...

    4272021-11-24
  • Golanggolang json.Marshal 特殊html字符被轉(zhuǎn)義的解決方法

    golang json.Marshal 特殊html字符被轉(zhuǎn)義的解決方法

    今天小編就為大家分享一篇golang json.Marshal 特殊html字符被轉(zhuǎn)義的解決方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧 ...

    李浩的life12792020-05-27
  • Golanggolang 通過ssh代理連接mysql的操作

    golang 通過ssh代理連接mysql的操作

    這篇文章主要介紹了golang 通過ssh代理連接mysql的操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧...

    a165861639710342021-03-08
  • Golanggolang如何使用struct的tag屬性的詳細(xì)介紹

    golang如何使用struct的tag屬性的詳細(xì)介紹

    這篇文章主要介紹了golang如何使用struct的tag屬性的詳細(xì)介紹,從例子說起,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看...

    Go語言中文網(wǎng)11352020-05-21
  • Golanggolang的httpserver優(yōu)雅重啟方法詳解

    golang的httpserver優(yōu)雅重啟方法詳解

    這篇文章主要給大家介紹了關(guān)于golang的httpserver優(yōu)雅重啟的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,...

    helight2992020-05-14
  • GolangGolang中Bit數(shù)組的實(shí)現(xiàn)方式

    Golang中Bit數(shù)組的實(shí)現(xiàn)方式

    這篇文章主要介紹了Golang中Bit數(shù)組的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧...

    天易獨(dú)尊11682021-06-09
主站蜘蛛池模板: 97久久精品人人做人人爽50路 | 精品视频一区二区三区四区 | 久草中文在线观看 | 91久色 | 97超碰免费 | 日韩欧美一区二区在线视频 | 亚洲一区二区在线视频 | 激情欧美一区二区三区中文字幕 | 福利片在线观看 | 久久久精品国产 | 精品国产一区二区三区小蝌蚪 | 欧美成人精品一区二区男人看 | 国产人成精品一区二区三 | 亚洲a网| 欧美精品成人一区二区三区四区 | 中文字幕av在线 | 在线观看免费视频黄 | 日韩在线视频一区 | 国产区在线观看 | 亚洲国产精品一区二区久久 | 综合色视频 | 精品久久97| 亚洲伊人久久综合 | 久久91精品国产 | 青青草久久| 亚洲视频在线播放 | 欧美麻豆 | 日本不卡免费新一二三区 | 国产久| 日本二区视频 | 日韩精品亚洲一区 | 日韩中文字幕一区二区三区 | 欧美在线观看免费观看视频 | 性做久久久久久 | 午夜精品久久久久久久久 | 玖玖色资源 | 在线观看免费毛片视频 | 亚洲成人精品在线观看 | 精品无码久久久久国产 | 人人干日日操 | 国产精品中文字幕在线 |