1 Star 0 Fork 0

tomatomeatman/GolangRepository

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
IntegerUtil.go 1.99 KB
一键复制 编辑 原始数据 按行查看 历史
laowei 提交于 2024-08-09 08:57 +08:00 . 1
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))
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/tomatomeatman/golang-repository.git
git@gitee.com:tomatomeatman/golang-repository.git
tomatomeatman
golang-repository
GolangRepository
927df5c1204f

搜索帮助