总结变量和数据类型(变量与数据类型)

布尔类型

【1】布尔类型也叫bool类型,bool类型数据只允许取值true和false

【2】布尔类型占1个字节。

【3】布尔类型适于逻辑运算,一般用于程序流程控制

【4】代码:

package main import "fmt" func main(){ //测试布尔类型的数值: var flag01 bool = true fmt.Println(flag01) var flag02 bool = false fmt.Println(flag02) var flag03 bool = 5 < 9 fmt.Println(flag03) }

字符串类型

【1】介绍:

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

【2】字符串的使用:

package main import "fmt" func main(){ //1.定义一个字符串: var s1 string = "你好全面拥抱Golang" fmt.Println(s1) //2.字符串是不可变的:指的是字符串一旦定义好,其中的字符的值不能改变 var s2 string = "abc" // s2 = "def" // s2[1] = t fmt.Println(s2) //3.字符串的表示形式: //(1)如果字符串中没有特殊字符,字符串的表示形式用双引号 //var s3 string = "asdfasdfasdf" //(2)如果字符串中有特殊字符,字符串的表示形式用反引号 `` var s4 string = ` package main import "fmt" func main(){ //测试布尔类型的数值: var flag01 bool = true fmt.Println(flag01) var flag02 bool = false fmt.Println(flag02) var flag03 bool = 5 < 9 fmt.Println(flag03) } ` fmt.Println(s4) //4.字符串的拼接效果: var s5 string = "abc" "def" s5 = "hijk" fmt.Println(s5) //当一个字符串过长的时候:注意: 保留在上一行的最后 var s6 string = "abc" "def" "abc" "def" "abc" "def" "abc" "def" "abc" "def" "abc" "def" "abc" "def" "abc" "def" "abc" "def" "abc" "def" "abc" "def" "abc" "def" "abc" "def" "abc" "def" "abc" "def" "abc" "def" "abc" "def" "abc" "def" "abc" "def" fmt.Println(s6) }

基本数据类型的默认值

【1】在Golang中数据类型都有一个默认值,当程序员没有赋值时,就会保留默认值(默认值又叫零值)。

总结变量和数据类型(变量与数据类型)(1)

【2】代码验证:

package main import "fmt" func main() { var a int var b float32 var c float64 var d bool var e string fmt.Println(a) fmt.Println(b) fmt.Println(c) fmt.Println(d) fmt.Println(e) }

总结变量和数据类型(变量与数据类型)(2)

基本数据类型之间的转换

【1】Go在不同类型的变量之间赋值时需要显式转换,并且只有显式转换(强制转换)。

【2】语法:

表达式T(v)将值v转换为类型T

T : 就是数据类型

v : 就是需要转换的变量

【3】案例展示:

package main import "fmt" func main(){ //进行类型转换: var n1 int = 100 // 在这里自动转换不好使,比如显式转换 // var n2 float32 = n1 fmt.Println(n1) //fmt.Println(n2) var n2 float32 = float32(n1) fmt.Println(n2) //注意:n1的类型其实还是int类型,只是将n1的值100转为了float32而已,n1还是int的类型 fmt.Printf("%T",n1) //int fmt.Println() //将int64转为int8的时候,编译不会出错的,但是会数据的溢出 var n3 int64 = 888888 var n4 int8 = int8(n3) fmt.Println(n4)//56 var n5 int32 = 12 var n6 int64 = int64(n5) 30 //一定要匹配=左右的数据类型 fmt.Println(n5) fmt.Println(n6) var n7 int64 = 12 var n8 int8 = int8(n7) 127 //编译通过,但是结果可能会溢出 //var n9 int8 = int8(n7) 128 //编译不会通过 fmt.Println(n8) //fmt.Println(n9) }

基本数据类型转string

【1】基本数据类型和string的转换介绍

在程序开发中,我们经常需要将基本数据类型转成string类型。或者将string类型转成基本数据类型。

【2】基本类型转string类型

方式1:fmt.Sprintf("%参数",表达式) ---》 重点练习这个,推荐方式

方式2:使用strconv包的函数

【3】代码测试:

方式一:

总结变量和数据类型(变量与数据类型)(3)

package main import "fmt" func main(){ var n1 int = 19 var n2 float32 = 4.78 var n3 bool = false var n4 byte = a var s1 string = fmt.Sprintf("%d",n1) fmt.Printf("s1对应的类型是:%T ,s1 = %q ",s1, s1) var s2 string = fmt.Sprintf("%f",n2) fmt.Printf("s2对应的类型是:%T ,s2 = %q ",s2, s2) var s3 string = fmt.Sprintf("%t",n3) fmt.Printf("s3对应的类型是:%T ,s3 = %q ",s3, s3) var s4 string = fmt.Sprintf("%c",n4) fmt.Printf("s4对应的类型是:%T ,s4 = %q ",s4, s4) }

方式二:

总结变量和数据类型(变量与数据类型)(4)

package main import( "fmt" "strconv" ) func main(){ var n1 int = 18 var s1 string = strconv.FormatInt(int64(n1),10) //参数:第一个参数必须转为int64类型 ,第二个参数指定字面值的进制形式为十进制 fmt.Printf("s1对应的类型是:%T ,s1 = %q ",s1, s1) var n2 float64 = 4.29 var s2 string = strconv.FormatFloat(n2,f,9,64) //第二个参数:f(-ddd.dddd) 第三个参数:9 保留小数点后面9位 第四个参数:表示这个小数是float64类型 fmt.Printf("s2对应的类型是:%T ,s2 = %q ",s2, s2) var n3 bool = true var s3 string = strconv.FormatBool(n3) fmt.Printf("s3对应的类型是:%T ,s3 = %q ",s3, s3) }

string转为基本数据类型

【1】string类型转基本类型

方式:使用strconv包的函数

总结变量和数据类型(变量与数据类型)(5)

【2】测试:

总结变量和数据类型(变量与数据类型)(6)

package main import( "fmt" "strconv" ) func main(){ //string-->bool var s1 string = "true" var b bool //ParseBool这个函数的返回值有两个:(value bool, err error) //value就是我们得到的布尔类型的数据,err出现的错误 //我们只关注得到的布尔类型的数据,err可以用_直接忽略 b , _ = strconv.ParseBool(s1) fmt.Printf("b的类型是:%T,b=%v ",b,b) //string---》int64 var s2 string = "19" var num1 int64 num1,_ = strconv.ParseInt(s2,10,64) fmt.Printf("num1的类型是:%T,num1=%v ",num1,num1) //string-->float32/float64 var s3 string = "3.14" var f1 float64 f1,_ = strconv.ParseFloat(s3,64) fmt.Printf("f1的类型是:%T,f1=%v ",f1,f1) //注意:string向基本数据类型转换的时候,一定要确保string类型能够转成有效的数据类型,否则最后得到的结果就是按照对应类型的默认值输出 var s4 string = "golang" var b1 bool b1 , _ = strconv.ParseBool(s4) fmt.Printf("b1的类型是:%T,b1=%v ",b1,b1) var s5 string = "golang" var num2 int64 num2,_ = strconv.ParseInt(s5,10,64) fmt.Printf("num2的类型是:%T,num2=%v ",num2,num2) }

参考源码:https://gitee.com/cyzgw/golang-demo.git

参考原文:cyz

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。