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"
  • 相关阅读:
    解决-Dmaven.multiModuleProjectDirectory system property is not set. Check $M2_HOME environment variable and mvn script match.
    .net-C#代码判断
    ashx-auth-黑色简洁验证码
    ylbtech-权限管理-数据库设计-功能权限管理技术
    ylbtech-Model-Account(通用账户模块设计)
    ADO.NET访问Access(文本数据库)数据操作(CRUD)
    连接数据库的五种不同的方式
    ylbtech-数据库设计与优化-对作为复选框/单选列表的集合表的设计
    ylbtech-cnblogs(博客园)-数据库设计-7,News(新闻)
    ylbtech-cnblogs(博客园)-数据库设计-2,Admin(用户后台)-用户自定义参数设置
  • 原文地址:https://www.cnblogs.com/VingB2by/p/11073828.html
Copyright © 2011-2022 走看看