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)
 }

 












 

posted @ 2019-08-25 12:18  菩提306  阅读(4532)  评论(0编辑  收藏  举报