game_sync/common/pbutils.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
}