第二章学习 数据类型之间的转化 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的时候,会按照默认类型进行转换