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 {
var ptr = new(bool)
*ptr = b
return ptr
}
func String(s string) *string {
var ptr = new(string)
*ptr = s
return ptr
}
func Byte(b byte) *byte {
var ptr = new(byte)
*ptr = b
return ptr
}
// Uint8 返回uint8类型的指针
func Uint8(u uint8) *uint8 {
var ptr = new(uint8)
*ptr = u
return ptr
}
func Int8(i int8) *int8 {
var ptr = new(int8)
*ptr = i
return ptr
}
func Int16(i int16) *int16 {
var ptr = new(int16)
*ptr = i
return ptr
}
// Uint16 返回uint16类型的指针
func Uint16(u uint16) *uint16 {
var ptr = new(uint16)
*ptr = u
return ptr
}
func Int(i int) *int {
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
}
// Uint32 返回uint32类型的指针
func Uint32(u uint32) *uint32 {
var ptr = new(uint32)
*ptr = u
return ptr
}
func Int64(i int64) *int64 {
var ptr = new(int64)
*ptr = i
return ptr
}
// Uint64 返回uint64类型的指针
func Uint64(u uint64) *uint64 {
var ptr = new(uint64)
*ptr = u
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 {
var ptr = new(float32)
*ptr = f
return ptr
}
// Float64 返回float64类型的指针
func Float64(f float64) *float64 {
var ptr = new(float64)
*ptr = f
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 (
src rand.Source
rad *rand.Rand
)
func init() {
rand.Seed(time.Now().UnixNano())
src = rand.NewSource(time.Now().UnixNano())
rad = rand.New(src)
}
//生成min-max之间的一个随机数
// Int 生成min-max之间的一个随机数
func Int(min, max int) int {
if min >= max {
if min > 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 {
if min >= max {
if min > 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
}
//随机指定长度的字符串