zoukankan      html  css  js  c++  java
  • 从零开始学Go之基本(三):类型转换与常量

    类型转换:

    简单类型转换:(一般是数字之间的转换)

    表达式:转换类型(转换值)

    func main() {
     var i = 42
     f := float64(i)
     var u = uint(f)
     var p = string(i)//会改变值
     fmt.Printf("i type=%T
    ",i)
     fmt.Printf("f type=%T
    ",f)
     fmt.Printf("u type=%T
    ",u)
     fmt.Printf("p type=%T
    ",p)
     fmt.Printf("p value=%v
    ",p)
    }

    运行结果:

    i type=int

    f type=float64

    u type=uint

    p type=string

    p value=*

    可以发现p的值已经变成42对应的ASCII码

    strconv包转换:

    int转换为字符串:strconv.Itoa()

    println("astring" + strconv.Itoa(666)) // 可以直接转换,输出为astring666

    string转换为int:strconv.Atoi()

    func Atoi(s string) (int, error)

    由于string可能无法转换为int,所以这个函数有两个返回值:第一个返回值是转换成int的值,第二个返回值判断是否转换成功

    strconv包的Parse类:

    Parse类函数用于转换字符串为给定类型的值(string->x):strconv.ParseBool()、strconv.ParseFloat()、strconv.ParseInt()、strconv.ParseUint()

    func ParseBool(s string) (i bool, err error)//真值:1, t, T, TRUE, true, True;假值:0, f, F, FALSE, false, False.
    
    func ParseFloat(s string, 64) (i float64, err error)//只支持64位
    
    func ParseInt(s string, base int, bitSize int) (i int64, err error)//base:按几进制转换,bitSize:转换的位数(8,16,32,64)
    
    func ParseUint(s string, base int, bitSize int) (uint64, error)//base:按几进制转换,bitSize:转换的位数(8,16,32,64)

    同string转int一样,由于有无法转换的可能性,所以都有两个返回值,第一个返回值是转换成对应类型的值,第二个返回值判断是否转换成功

    strconv包的Format类:

    Format类函数用于给定类型的值转换为字符串(x->string):strconv.FormatBool()、strconv.FormatFloat()、strconv.FormatInt()、strconv.FormatUint()

    func FormatBool(i bool) string
    
    func FormatFloat(i float64, fmt byte, prec, bitSize int) string//fmt:格式标记(b、e、E、f、g、G),prec:代表输出的精度小数点后的位数,如果是<0的值,则返回最少的位数来表示该数,如果是大于0的则返回对应位数的值bitSize:转换的位数(32,64)
    
    /*
    格式标记:
    'b' (-ddddp±ddd,二进制指数) 'e' (-d.dddde±dd,十进制指数) 'E' (-d.ddddE±dd,十进制指数) 'f' (-ddd.dddd,没有指数) 'g' ('e':大指数,'f':其它情况) 'G' ('E':大指数,'f':其它情况)
    */ func FormatInt(i int64,
    base int) string//base:按几进制转换 func FormatUint(i uint64, base int) string//base:按几进制转换

    strconv包的Append类:(切片slice在后面讲)

    AppendTP类函数跟Format类一样,只是转换成字符串后再append到一个slice中:strconv.AppendBool()、strconv.AppendFloat()、strconv.AppendInt()、strconv.AppendUint()。、

    func AppendBool(i []bool) string
    
    func AppendtFloat(i []float64, fmt byte, prec, bitSize int) string
    
    func AppendInt(i []int64, base int) string//base:按几进制转换
    
    func AppendUint(i []uint64, base int) string//base:按几进制转换

    常量:

    常量声明与初始化跟变量相似,只是var变成了const,而且无法使用短变量

    const 变量名 变量类型 = 变量值

    const a string = "test"
  • 相关阅读:
    HDU 1501 Zipper(DFS)
    HDU 2181 哈密顿绕行世界问题(DFS)
    HDU 1254 推箱子(BFS)
    HDU 1045 Fire Net (DFS)
    HDU 2212 DFS
    HDU 1241Oil Deposits (DFS)
    HDU 1312 Red and Black (DFS)
    HDU 1010 Tempter of the Bone(DFS+奇偶剪枝)
    HDU 1022 Train Problem I(栈)
    HDU 1008 u Calculate e
  • 原文地址:https://www.cnblogs.com/VingB2by/p/11073828.html
Copyright © 2011-2022 走看看