第二章学习 数据类型之间的转化 strconv的方法实现

发布时间 2023-05-08 21:08:38作者: lisenMiller

变量

 通过修改settings里的compact folder来让目录的关系展开而不是合并起来

1.变量声明
var age int 
age =18
fmt.println("age= ",age)
//声明和复制合成
var age2 int=19
fmt.Println("age2 = ",age2);

2.变量的四种使用形式

指定变量类型但是不赋值,如果没有赋值操作默认值为0
没有指定类型,根据值进行判定变量的类型,做一个自动类型推断
省略var,注意 := 注意不能写为= 例sex := "男"

3.支持一次性声明多个变量

 n6,height := 6.9,100

4.全局变量的一次性声明

var (

)

 

数据类型

 整数类型

有符号整数类型

 无符号整数类型

 其他整数类型

 查看某个变量的类型是什么

 查看某个变量的占用的字节数

要导入unsafe包利用一次多声明性

import(

  "fmt"

  "unsafe"

)

var num3=28

fmt.Println(unsafe.Sizeof(num3))

 浮点数类型

浮点数类型介绍

 底层存储空间和操作系统无关

浮点数类型底层存储 符号位+指数位+尾数位,可能存在精度的损失

定义浮点数的数据和科学计数法E

 浮点数可能会有精度的损失,建议使用float64

默认的浮点类型是float64

检测默认的类型

var num3 = 123.312

fmt.Printf("num3对应的type : %T" ,num3);

字符类型

 代码方向

 转义字符

 布尔类型

 func main(){
  var flag001 bool = true 

  fmt.Println(flag001)

字符串类型

字符串就是一串固定长度的字符连接起来的字符序列

package main
import "fmt"

func main(){
    var s1 string = "nihao"
  fmt.Println(s1)
  //字符串不可变
  var s2 string = "abc"
  s2= "def"
  fmt.Pringln(s2)  //不字符串一旦定义好,其中的字符的值不能改变
  //字符串的表达形式
  
  //字符串的表达形式
  1. 字符串中没有特殊字符,字符串的表达形式用双引号

  2.字符串有特殊字符,字符串的表达形式用反引号``

   3.字符串的拼接效果

  var s5 string = "abc" + " def" 

  s5 += "hijk"

  fmt.Println(s5)

  4.当字符串太长是,注意+号保留在最后一行

  

}

各个类型的默认值

 基本数据类型之间的转化

 

package main
import "fmt"

func main(){
    var s1 int = 100
    var s2 float32 = float32(s1)
    fmt.Println(s2)
}

 匹配数据类型

 数据溢出问题

 

基本数据类型转为string

 方式1 fmt.sprintf("%参数",表达式)

 输出

 方式二 strconv方式

strconv的方法

 代码测试

 输出

 string转化成基本数据类型

 ParseBool会返回两个值,value和error

我们只关注布尔类型的数据,error应该也要处理(暂时不知道怎么处理)

package main
import(
    "fmt"
    "strconv"
)
func main(){
    //string -> bool
    var s1 string= "str"
    var b bool
    b,_  = strconv.Parsebool(s1)
    fmt.Println("b的类型是%T b=%v",b,b)
}

报错

 

 默认返回int64类型,同时第三位数确定不能超过的数据类型

//string - > Int64
package main
import(
    "fmt"
    "strconv"
)

func main(){
    //string->int64
    var s2 string="24"
    var a int64
    a=strconv.ParseInt(s2,10,64)
    fmt.Println("a的类型时%T a=%v",a,a)

 默认返回float64类型

//string-float64
package main
import(
    "fmt"
    "strconv"
)
func main(){
    var s3 string="3.13"
    var c float64
    c=strconv.ParseFloat(s3,64)    #注意parsefloat的返回值是两位,所以会如果只用c一个接收会报错c,_
    fmt.Println("c的类型是%T c=%v",c,c)
} 

报错tips:如果转化之间的数据不对应.例如string是3.12转成bool的时候,会按照默认类型进行转换