86 lines
1.4 KiB
Go
86 lines
1.4 KiB
Go
package common
|
|
|
|
import (
|
|
"math/rand"
|
|
)
|
|
|
|
// /////////////////////////////////////a2b
|
|
func MapToint32(a map[int]bool) (b []int32) {
|
|
b = make([]int32, len(a))
|
|
i := 0
|
|
for k, _ := range a {
|
|
b[i] = int32(k)
|
|
i++
|
|
}
|
|
return
|
|
}
|
|
func Int32Toint(a []int32) (b []int) {
|
|
b = make([]int, len(a))
|
|
for k, v := range a {
|
|
b[k] = int(v)
|
|
}
|
|
return
|
|
}
|
|
func ThreeTonullArray(a [3]int) (b []int32) {
|
|
b = make([]int32, len(a), len(a))
|
|
for i := 0; i < len(a); i++ {
|
|
b[i] = int32(a[i])
|
|
}
|
|
return
|
|
}
|
|
func RandInSliceIndex(pool []int) int {
|
|
var total int
|
|
for _, v := range pool {
|
|
total += v
|
|
}
|
|
val := int(rand.Int31n(int32(total)))
|
|
total = 0
|
|
for index, v := range pool {
|
|
total += v
|
|
if total >= val {
|
|
return index
|
|
}
|
|
}
|
|
|
|
return 0
|
|
}
|
|
func IntToInt64(a []int) []int64 {
|
|
c := make([]int64, len(a), len(a))
|
|
for k, v := range a {
|
|
c[k] = int64(v)
|
|
}
|
|
return c
|
|
}
|
|
func Int64Toint(a []int64) []int {
|
|
c := make([]int, len(a), len(a))
|
|
for k, v := range a {
|
|
c[k] = int(v)
|
|
}
|
|
return c
|
|
}
|
|
func Int64ToInt32(a []int64) []int32 {
|
|
c := make([]int32, len(a), len(a))
|
|
for k, v := range a {
|
|
c[k] = int32(v)
|
|
}
|
|
return c
|
|
}
|
|
|
|
// 将数组类型转化为int切片类型的值
|
|
func Int32SliceToInt(arr []int32) []int {
|
|
s := make([]int, 0)
|
|
for _, v := range arr {
|
|
s = append(s, int(v))
|
|
}
|
|
return s
|
|
}
|
|
|
|
// 将数组类型转化为int切片类型的值
|
|
func IntSliceToInt32(arr []int) []int32 {
|
|
s := make([]int32, 0)
|
|
for _, v := range arr {
|
|
s = append(s, int32(v))
|
|
}
|
|
return s
|
|
}
|