zoukankan      html  css  js  c++  java
  • go语言-数据类型及类型之间转换

    数据类型分类

    一、数据类型-基本数据类型

      1、整数型(int、有符号(int8/1字节、int16/2字节、int32/4字节、int64/8字节)、无符号(uint、uint8、uint16、uint32、uint64))

        int--根据系统位数自动定义,系统是32位,则为int32,系统是64位,则位int64

        uint--根据系统位数自动定义,系统是32位,则为uint32,系统是64位,则位uint64

      2、浮点型:由符号位+指数位+位数位组成,分为float32,float64

        尾数位可能会丢失,造成精度损失,不受操作系统的影响,声明默认为64位

        有两种显示方式:科学计数:534e3等价于534*10的3次方,534e-3等价于534/10的3次方,e不区分大小写;小数时前面0可不写

      3、布尔型:只能是true,false,占用一个字节

      4、字符串

        字符:单引号括起来的单个字符,需要格式化输出,%c,否则输出字符码数,

           utf-8英文1个字节,中文3个字节

           存储:字符-对应码数-二进制-存储

              读取:二进制-对应码数-字符-读取

        字符串不可修改,双引号里有转义字符会被识别,反引号里不会识别里面的转移字符

      5、格式化输出符号

        %c:该值对应的unicode码值

        %d:表示为十进制显示

        %T:值的类型

        %q:该值对应的双引号括起来的go语法字符串字面值

        %f:显示小数

    二、数据类型-派生数据类型 

      指针、数组、结构体、管道、函数、切片、接口、map

    数据类型转换

    一、int/float/bool/字符--转换成str,用fmt.sprintf进行转换,%q展示双引号括起来的字符串面值

    var(
         num4 = 1
         num5 = 3.44
         char = 'w'
         bl = true
         str1  string
      )
      //int-->>string
      str1 =fmt.Sprintf("%d",num4)
      fmt.Printf("str=%q",str1)
    // float-->>string str1 = fmt.Sprintf("%f",num5) fmt.Printf("str=%q",str1)   //str-->>sting str1 = fmt.Sprintf("%c",char) fmt.Printf("str=%q",str)  //bool-->>string str1 = fmt.Sprintf("%t",bl) fmt.Printf("str=%q",str1)

    二、str转int/float/bool,用strconv包的函数进行转换

      注意事项:

      1、使用strconv包的函数,先导入strconv包,会返回两个值,第一个是value,第二个是error,一个是报错,报错不需要用_忽略掉,%v-按原类型输出

      2、string类型转基本数据类型能够转成有效数据

      3、如将hello转成int,不会报错,直接显示默认值0

      4、如将hello转成bool,不会报错,直接显示默认值false

      5、ParseBool(变量名),(值,报错)

      6、ParseInt(变量名,显示进制(10进制),多少位(int8/16/32/64)),(值-int64,报错)

      7、ParseFloat(变量名,位数flaot32/64),(值float64,报错)

    
    
    var(
           str2 = "true"
           b1 bool
           str3 = "122333"
           n1 int64
           str4 = "23.33"
           n2 float64
        )
        //string转bool,%v是展示值的默认格式
        b1,_ = strconv.ParseBool(str2)
        fmt.Printf("b=%v",b1)
    
        //string转int
        n1,_ = strconv.ParseInt(str3,10,64)
        fmt.Printf("n1=%v",n1)
    
        //string转float
        n2,_ = strconv.ParseFloat(str4,64)
        fmt.Printf("n2=%v",n2)
     }
    
    
    

     

    
    










  • 相关阅读:
    hihocoder #1138 : Islands Travel
    关于c中的inline
    LUOGU P2921 [USACO08DEC]在农场万圣节Trick or Treat on the Farm
    LUOGU P1908 逆序对
    归并排序 (模板)
    tyvj 1864 守卫者的挑战
    loj #10001. 「一本通 1.1 例 2」种树
    bzoj 1026: [SCOI2009]windy数
    BZOJ 4521: [Cqoi2016]手机号码
    LUOGU 3089 后缀排序(模板)
  • 原文地址:https://www.cnblogs.com/puti306/p/11407501.html
Copyright © 2011-2022 走看看