go语言类型转换

打印数据类型

    fmt.Println(reflect.TypeOf("这是一个string"))  // 需要 引入 "reflect"

int64转int

  方法一
    // 设置一个 int64 的数据
    int64_num := int64(6)
    // 将 int64 转化为 int
    int_num := *(*int)(unsafe.Pointer(&int64_num))
  方法2:
     var num64 int64 = 99
     // method 1:
     strInt64 := strconv.FormatInt(num64 , 10)
     numInt ,_ := strconv.Atoi(strInt64)
     fmt.Println(numInt ) 
     fmt.Println(reflect.TypeOf(numInt ))

string 转 float 64

    test := strconv.ParseFloat("116.46", 64)
    fmt.Println(test)

float 转 string

    strconv.FormatFloat(18.234, 'f', 2, 64)   // 转成十进制的,2位小数的字符串, 当第三个参数大于0时,是几表示保留几位小数,
    strconv.FormatFloat(10.010, 'f', -1, 64)  // 输出:10.01, 第三个参数,如果是小于 0 的值,则返回最少的位数来表示该数(即去掉最后无用的0)
    strconv.FormatFloat(18.234, 'E', -1, 64)  // 转成科学计算的小数形式,  第四个参数,64 为float的类型,go中float分为32和64位,因此就需要传入32或者64
    strconv.FormatFloat(10.100,'f',-1,32)     // 输出:10.1, 其中第二个参数,f 参数可以是e,E,g,G

int64 转 string

 strconv.FormatInt(int64,10)

string 转 int64

    int64, err := strconv.ParseInt(string, 10, 64)  
    //第二个参数为基数(2~36),
    //第三个参数位大小表示期望转换的结果类型,其值可以为0, 8, 16, 32和64,
    //分别对应 int, int8, int16, int32和int64

float64 转 int

官方的math 包中提供了取整的方法,向上取整math.Ceil() ,向下取整math.Floor()
通过 + 0.5 来实现四舍五入:
    int(math.Floor(6.24821.(float64)+0.5))  

string(json)转数组(slice)

// 声明一个数组
var temArray []interface{}
err := json.Unmarshal([]byte(str), &temArray)
if err != nil {
panic(err)
}
fmt.Println(temArray)  // 即使是map组成的数组(slice),也可以解析

string(json)转map

json.Unmarshal(b3, &data)

map转string(json)

b4, err := json.Marshal(p.Input()) // 获取query参数
知止而后有定,定而后能静,静而后能安,安而后能虑,虑而后能得。 所谓诚其意者,毋自欺也。
posted @ 2019-11-11 16:11  aaa_Eternity味道  阅读(313)  评论(0编辑  收藏  举报