golang 陣列 slice 亂序

2021-07-06 00:23:22 字數 579 閱讀 6464

陣列亂序

方法1.sliceoutoforder 選定隨機數r 將下標r和下邊i交換,i– ,就是和當前最後一位交換

方法2.rand.perm(陣列長度) 將原陣列下標按照隨機出來的資料賦值給另一陣列

package main

import

"fmt"

import

"math/rand"

import

"time"

var (

rr = rand.new(rand.newsource(time.now().unixnano()))

a1 = [2]int{}

a2 = [10]int{}

)func main()

for i := 0; i < 10000; i++

fmt.println(a1)

fmt.println(a2)

}func sliceoutoforder(in int) int

a1[in[0]] += 1

returnin}

func randslice()

golang筆記 Slice切片

sliceslice代表變長的序列,序列中每個元素都有相同的型別。語法和陣列很像,只是沒有固定長度。引用型別 動態陣列 從概念上來說,slice像乙個結構體,這個結構體包含了三個元素 乙個指標,指向陣列中slice指定的開始位置 長度,即slice的長度 最大長度,也就是slice開始位置到陣列的最...

golang學習筆記 slice

go 語言中的slice型別可以理解為是陣列array型別的描述符,包含了三個因素 指向底層陣列的指標 slice目前使用到的底層陣列的元素個數,即長度 底層陣列的最大長度,即容量 因此當我們定義乙個切片變數,s make int,5,10 即為指向了乙個最大長度為10的底層陣列,目前切片s使用到的...

golang中陣列和slice作為引數的區別

最近專案中有遇到類似問題,做個記錄。舉個例子,5 int為陣列,int為slice 陣列切片 陣列是值型別,而slice為引用型別,值型別作為引數傳入函式,只是拷貝了個副本,修改並不會作用到傳入的那個引數,所以一般使用slice作為引數,免去了拷貝的消耗,但是有坑在裡面,下面寫例子說明。1.slic...