This commit is contained in:
hong
2021-06-30 21:54:33 +08:00
parent e073eaad54
commit ce119e4cdf
2 changed files with 93 additions and 55 deletions

View File

@@ -1,91 +1,110 @@
package typo package ptr
/*
返回各种基本数据类型的指针
*/
// Bool 返回bool指针
func Bool(b bool) *bool { func Bool(b bool) *bool {
var ptr = new(bool) var ptr = new(bool)
*ptr = b *ptr = b
return ptr return ptr
} }
func String(s string) *string { // Uint8 返回uint8类型的指针
var ptr = new(string)
*ptr = s
return ptr
}
func Byte(b byte) *byte {
var ptr = new(byte)
*ptr = b
return ptr
}
func Uint8(u uint8) *uint8 { func Uint8(u uint8) *uint8 {
var ptr = new(uint8) var ptr = new(uint8)
*ptr = u *ptr = u
return ptr return ptr
} }
func Int8(i int8) *int8 { // Uint16 返回uint16类型的指针
var ptr = new(int8)
*ptr = i
return ptr
}
func Int16(i int16) *int16 {
var ptr = new(int16)
*ptr = i
return ptr
}
func Uint16(u uint16) *uint16 { func Uint16(u uint16) *uint16 {
var ptr = new(uint16) var ptr = new(uint16)
*ptr = u *ptr = u
return ptr return ptr
} }
func Int(i int) *int { // Uint32 返回uint32类型的指针
var ptr = new(int)
*ptr = i
return ptr
}
func Uint(u uint) *uint {
var ptr = new(uint)
*ptr = u
return ptr
}
func Int32(i int32) *int32 {
var ptr = new(int32)
*ptr = i
return ptr
}
func Uint32(u uint32) *uint32 { func Uint32(u uint32) *uint32 {
var ptr = new(uint32) var ptr = new(uint32)
*ptr = u *ptr = u
return ptr return ptr
} }
func Int64(i int64) *int64 { // Uint64 返回uint64类型的指针
var ptr = new(int64)
*ptr = i
return ptr
}
func Uint64(u uint64) *uint64 { func Uint64(u uint64) *uint64 {
var ptr = new(uint64) var ptr = new(uint64)
*ptr = u *ptr = u
return ptr return ptr
} }
// Int8 返回int8类型的指针
func Int8(i int8) *int8 {
var ptr = new(int8)
*ptr = i
return ptr
}
// Int16 返回int16类型的指针
func Int16(i int16) *int16 {
var ptr = new(int16)
*ptr = i
return ptr
}
// Int32 返回int32类型的指针
func Int32(i int32) *int32 {
var ptr = new(int32)
*ptr = i
return ptr
}
// Int64 返回int64类型的指针
func Int64(i int64) *int64 {
var ptr = new(int64)
*ptr = i
return ptr
}
// Float32 返回float32类型的指针
func Float32(f float32) *float32 { func Float32(f float32) *float32 {
var ptr = new(float32) var ptr = new(float32)
*ptr = f *ptr = f
return ptr return ptr
} }
// Float64 返回float64类型的指针
func Float64(f float64) *float64 { func Float64(f float64) *float64 {
var ptr = new(float64) var ptr = new(float64)
*ptr = f *ptr = f
return ptr return ptr
} }
// String 返回string类型的指针
func String(s string) *string {
var ptr = new(string)
*ptr = s
return ptr
}
// Int 返回int类型的指针
func Int(i int) *int {
var ptr = new(int)
*ptr = i
return ptr
}
// Uint 返回uint类型的指针
func Uint(u uint) *uint {
var ptr = new(uint)
*ptr = u
return ptr
}
// Byte 返回byte类型的指针
func Byte(b byte) *byte {
var ptr = new(byte)
*ptr = b
return ptr
}

View File

@@ -15,26 +15,45 @@ const (
var ( var (
src rand.Source src rand.Source
rad *rand.Rand
) )
func init() { func init() {
rand.Seed(time.Now().UnixNano())
src = rand.NewSource(time.Now().UnixNano()) src = rand.NewSource(time.Now().UnixNano())
rad = rand.New(src)
} }
//生成min-max之间的一个随机数 // Int 生成min-max之间的一个随机数
func Int(min, max int) int { func Int(min, max int) int {
if min >= max { if min > max {
panic("min bigger than max") panic("min bigger than max")
} }
return rand.Intn(max-min+1) + min if min == max {
return max
}
return rad.Intn(max-min+1) + min
} }
// Int64 在min和max之间随机返回一个数
func Int64(min, max int64) int64 { func Int64(min, max int64) int64 {
if min >= max { if min > max {
panic("min bigger than max") panic("min bigger than max")
} }
return rand.Int63n(max-min+1) + min if min == max {
return min
}
return rad.Int63n(max-min+1) + min
}
// Int32 在min和max之间随机返回一个数
func Int32(min, max int32) int32 {
if min > max {
panic("min bigger than max")
}
if min == max {
return min
}
return rad.Int31n(max-min+1) + min
} }
//随机指定长度的字符串 //随机指定长度的字符串