• 从零开始学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"
  • 相关阅读:
    hadoop+海量数据面试题汇总(二)
    hadoop+海量数据面试题汇总(一)
    Java文件下载
    Spring+struts+ibatis(一)环境准备工作
    在Action类中获得HttpServletResponse对象的四种方法
    产品需求文档写作方法(三)用例文档(UML用例图、流程图)
    产品需求文档写作方法(二)原型设计+撰写设计
    产品需求文档写作方法(一)写前准备+梳理需求
    使用Java操作文本文件的方法详解
    计算两个时间相隔多少时间段的类,可以直接拿来用哦!
  • 原文地址:https://www.cnblogs.com/VingB2by/p/11073828.html
Copyright © 2020-2023  润新知