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

通过修改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的时候,会按照默认类型进行转换

浙公网安备 33010602011771号