golang中string int float bool类型相互转换
package main
import (
"fmt"
"strconv"
)
func IntToString() {
//todo :int to string
v := 456
vS := strconv.Itoa(v)
fmt.Println(vS) //方法1,简便版
//todo :int64 to string
var vI64 int64 = 789
vInt64S := strconv.FormatInt(vI64, 10) //方法2,int64转string,可指定几进制
fmt.Println(vInt64S)
//todo :uint64 to string
var vUI64 uint64 = 91011
vUI64S := strconv.FormatUint(vUI64, 10) //方法3, uint64转string,可指定几进制
fmt.Println(vUI64S)
}
func StringToInt() {
//todo :string to int/int64
s := "123"
vInt, _ := strconv.Atoi(s) //方法1,便捷版
fmt.Println(vInt)
vInt64, _ := strconv.ParseInt(s, 10, 64) //方案2,有符号整型,可以指定几进制,整数长度
fmt.Println(vInt64)
vUInt64, _ := strconv.ParseUint(s, 10, 64) //方案3,无符号整型,可以指定几进制,整数长度
fmt.Println(vUInt64)
}
func StringToFloat() {
//todo :string to float
f64, _ := strconv.ParseFloat("123.456", 64) //方法1,可以指定长度
fmt.Println(f64)
}
func FloatToString() {
//todo :float to string
f64 := 1223.13252
sF64 := strconv.FormatFloat(f64, 'f', 5, 64) //方法1,可以指定输出格式、精度、长度
fmt.Println(sF64)
}
func StringToBool() {
//todo :string to bool
接受 1, t, T, TRUE, true, True, 0, f, F, FALSE, false, False 等字符串;
其他形式的字符串会返回错误
b, _ := strconv.ParseBool("1")
fmt.Println(b)
}
func BoolToString() {
//todo :bool to string
sBool := strconv.FormatBool(true) //方法1
fmt.Println(sBool)
}
func TimeTrans() {
//todo :时间转时间戳
fmt.Println(time.Date(2014, 1, 7, 5, 50, 4, 0, time.Local).Unix())
//todo :时间戳转时间
fmt.Println(time.Unix(1389058332, 0).Format("2006-01-02 15:04:05")) //2014-01-07 09:32:12
}
func main() {
StringToInt()
IntToString()
StringToFloat()
FloatToString()
BoolToString()
StringToBool()
TimeTrans()
}