// []byte -> other type
[]byte => string : string([]byte)
[]byte => int : binary包处理, 查看下面
// int -> other type
int => string : s = strconv.Itoa(i)
int => int32 : i32 = int32(num)
int => int64 : i64 = int64(num)
int64/int32 => int : i = int(num)
int64 => string : strconv.FormatInt(int64, 10)
int64 => time.Duration : time.Duration(int64)
int32 => byte : bytes.NewBuffer() 看上面 int 和 byte 互转
//整形转换成字节
func IntToBytes(n int) []byte {
x := int32(n)
bytesBuffer := bytes.NewBuffer([]byte{})
binary.Write(bytesBuffer, binary.BigEndian, x)
return bytesBuffer.Bytes()
}
//字节转换成整形
func BytesToInt(b []byte) int {
bytesBuffer := bytes.NewBuffer(b)
var x int32
binary.Read(bytesBuffer, binary.BigEndian, &x)
return int(x)
}
int => float64 : float64(num)
// other type -> int
i = int(int32/int64)
float64/float32 => int(int64/int32)
// string -> other type
string => int : i, err = strconv.Atoi(s)
string => bool : strconv.ParseBool("true")
string => float32 : strconv.ParseFloat(s, 32)
string => float64 : strconv.ParseFloat(s, 64)
string => uint : strconv.ParseUint()
string => int32/int64 : strconv.ParseInt(s, 10, 32/64)
string => []byte : []byte(string)
string(16进制) => int32/int64 : strconv.ParseInt(s, 0, 32/64)
// other type -> string
int,int32,int64 => string : str1 := fmt.Sprintf("%d", i) // i可以是int/int32/int64
或 str2 := strconv.Itoa(i) // i为int
或 str3 := strconv.FormatInt(int64(i), 10) // i可以是int/int32/int64
uint64 => string : strconv.FormatUint(unit64, 10)
bool => string : strconv.FormatBool(true)
float64 => string : strconv.FormatFloat(float64(12), 'f', -1, 64)
或 fmt.Sprintf("%.2f", float64)
// array -> slice :
1) copy(array[:], slice[0:4]) | 全部 copy(array[:], slice)
2) for
for index, b := range someSlice {
array[index] = b
}
// slice -> array
slice=>array : array[:]
golang的类型转换
最新推荐文章于 2024-07-02 12:51:42 发布