常用基本类型的转换方法比较简单,我们这里使用一个例子来演示转换方法的使用及效果。

基本示例

更多的类型转换方法请参考接口文档:https://pkg.go.dev/github.com/gogf/gf/v2/util/gconv

package main

import (
    "fmt"
    "github.com/gogf/gf/v2/util/gconv"
)

func main() {
    i := 123.456
    fmt.Printf("%10s %v\n", "Int:",        gconv.Int(i))
    fmt.Printf("%10s %v\n", "Int8:",       gconv.Int8(i))
    fmt.Printf("%10s %v\n", "Int16:",      gconv.Int16(i))
    fmt.Printf("%10s %v\n", "Int32:",      gconv.Int32(i))
    fmt.Printf("%10s %v\n", "Int64:",      gconv.Int64(i))
    fmt.Printf("%10s %v\n", "Uint:",       gconv.Uint(i))
    fmt.Printf("%10s %v\n", "Uint8:",      gconv.Uint8(i))
    fmt.Printf("%10s %v\n", "Uint16:",     gconv.Uint16(i))
    fmt.Printf("%10s %v\n", "Uint32:",     gconv.Uint32(i))
    fmt.Printf("%10s %v\n", "Uint64:",     gconv.Uint64(i))
    fmt.Printf("%10s %v\n", "Float32:",    gconv.Float32(i))
    fmt.Printf("%10s %v\n", "Float64:",    gconv.Float64(i))
    fmt.Printf("%10s %v\n", "Bool:",       gconv.Bool(i))
    fmt.Printf("%10s %v\n", "String:",     gconv.String(i))
    fmt.Printf("%10s %v\n", "Bytes:",      gconv.Bytes(i))
    fmt.Printf("%10s %v\n", "Strings:",    gconv.Strings(i))
    fmt.Printf("%10s %v\n", "Ints:",       gconv.Ints(i))
    fmt.Printf("%10s %v\n", "Floats:",     gconv.Floats(i))
    fmt.Printf("%10s %v\n", "Interfaces:", gconv.Interfaces(i))
}

执行后,输出结果为:

      Int: 123
     Int8: 123
    Int16: 123
    Int32: 123
    Int64: 123
     Uint: 123
    Uint8: 123
   Uint16: 123
   Uint32: 123
   Uint64: 123
  Float32: 123.456
  Float64: 123.456
     Bool: true
   String: 123.456
    Bytes: [119 190 159 26 47 221 94 64]
  Strings: [123.456]
     Ints: [123]
   Floats: [123.456]
Interfaces: [123.456]

注意事项

数字转换方法例如gconv.Int/Uint等等,当给定的转换参数为字符串时,会自动识别十六进制、八进制。

十六进制转换

gconv0x开头的数字字符串当做十六进制转换。例如,gconv.Int("0xff")将会返回255










Content Menu

  • No labels

6 Comments

  1. gconvfloat类型是否可以加入:保留几位小数输出的可选参数

    对int类型是否可以加入:前置补零(补充元素为传参)的格式化输出

    1. 类型转换跟格式化打印输出没有关系

  2. 请问,在将  int int64 int16 int32 转换为 bytes  时,使用的是 大端模式 还是 小端模式?

  3. 字符串转slice的int64位的方法是怎么转的呀?

    比如:字符串:"41,40,42,43"

    转为

    g.Slice{41,40,42,43}