代码拉取完成,页面将自动刷新
package integerutil
import (
"fmt"
"strconv"
"unsafe"
)
//func ToInt(str string, iDefault int) int {
// if str == "" { //字符串不能判断nil
// return iDefault
// }
// result, err := strconv.Atoi(str)
// if err != nil {
// return iDefault
// }
// return result
//}
//func ToInt64(str string, iDefault int64) int64 {
// if str == "" { //字符串不能判断nil
// return iDefault
// }
// result, err := strconv.ParseInt(str, 10, 64)
// if err != nil {
// return iDefault
// }
// return result
//}
// 对象(字符串)转整型
func ToInt(obj interface{}, iDefault ...int) int {
var str string
switch obj.(type) {
case []uint8:
str = *(*string)(unsafe.Pointer(&obj))
default:
str = fmt.Sprintf("%v", obj)
}
if str == "" { //字符串不能判断nil
if len(iDefault) < 1 {
return 0
}
return iDefault[0]
}
result, err := strconv.Atoi(str)
if err != nil {
if len(iDefault) < 1 {
return 0
}
return iDefault[0]
}
return result
}
// 对象(字符串)转64整型
func ToInt64(obj interface{}, iDefault int64) int64 {
var str string
switch v := obj.(type) {
case []uint8:
str = Byte2Str(v)
default:
str = fmt.Sprintf("%v", v)
}
if str == "" { //字符串不能判断nil
return iDefault
}
result, err := strconv.ParseInt(str, 10, 64)
if err != nil {
return iDefault
}
return result
}
// 取int最大值
func MaxInt() int {
//二进制的首位为符号位,0表示正数,1表示负数。因此对uint(0)按位求反,再向右移动一位(将首位的1右移后首位变为0),得到最大值
return int(^uint(0) >> 1)
}
// 取int最小值
func MinInt() int {
//二进制的首位为符号位,0表示正数,1表示负数。因此对uint(0)按位求反,再向右移动一位(将首位的1右移后首位变为0),得到最大值,对最大值按位求反,其二进制首位变为1,其余位变为0,得到最小值
return ^int(^uint(0) >> 1)
}
// Byte转Str
func Byte2Str(b []byte) string {
return *(*string)(unsafe.Pointer(&b))
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。