Golang类型转换
发布时间:2020-12-16 18:23:44 所属栏目:大数据 来源:网络整理
导读:golang是强类型语言,在应用过程中类型转换基本都会用到。下面整理一下常用的类型转换,会持续更新。 bytes 、string转换 //类型转换 string to bytes func str2bytes(s string ) [] byte { x := (* [2 ] uintptr )(unsafe.Pointer(s)) h := [3 ] uintptr {x
golang是强类型语言,在应用过程中类型转换基本都会用到。下面整理一下常用的类型转换,会持续更新。 bytes 、string转换//类型转换 string to bytes
func str2bytes(s string) []byte {
x := (*[2]uintptr)(unsafe.Pointer(&s))
h := [3]uintptr{x[0],x[1],x[1]}
return *(*[]byte)(unsafe.Pointer(&h))
}
//类型转换 bytes to string
func bytes2str(b []byte) string {
return *(*string)(unsafe.Pointer(&b))
}
interface转为string//interface转为string
func interface2string(inter interface{}) string {
tempStr := ""
switch inter.(type) {
case string:
tempStr = inter.(string)
break
case float64:
tempStr = strconv.FormatFloat(inter.(float64),'f', -1, 64)
break
case int64:
tempStr = strconv.FormatInt(inter.(int64), 10)
break
case int:
tempStr = strconv.Itoa(inter.(int))
break
}
return tempStr
}
最新更新日期20161219 func ToStr(value interface{},args ...int) (s string) {
switch v := value.(type) {
case bool:
s = strconv.FormatBool(v)
case float32:
s = strconv.FormatFloat(float64(v),argInt(args).Get(0, -1),argInt(args).Get(1, 32))
case float64:
s = strconv.FormatFloat(v, 64))
case int:
s = strconv.FormatInt(int64(v), 10))
case int8:
s = strconv.FormatInt(int64(v), 10))
case int16:
s = strconv.FormatInt(int64(v), 10))
case int32:
s = strconv.FormatInt(int64(v), 10))
case int64:
s = strconv.FormatInt(v, 10))
case uint:
s = strconv.FormatUint(uint64(v), 10))
case uint8:
s = strconv.FormatUint(uint64(v), 10))
case uint16:
s = strconv.FormatUint(uint64(v), 10))
case uint32:
s = strconv.FormatUint(uint64(v), 10))
case uint64:
s = strconv.FormatUint(v, 10))
case string:
s = v
case []byte:
s = string(v)
default:
s = fmt.Sprintf("%v",v)
}
return s
} (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |