package main
import “fmt”
//基本数据类型默认值
//整型 0
//浮点型 0
//字符串“”
//布尔类型 false
//基本介绍
//在go中。数据类型都有一个默认值,当程序员没有赋值时,就会保留默认值,在go中,默认值又叫零值。
//基本数据类型默认值如下
//func main(){
// var a int//0
// var b float32//0
// var c float32//0
// var isMarried bool //false
// var name string//""
// fmt.Println(“a=%d,b=%f,c=%f,isMarried=%v name=%v”,a,b,c,isMarried,name)
//}
//Golang和java/c不同,Go在不同类型的变量之间赋值时需要显示转换,也就是说Golang中的数据类型不能自动转换。
//基本语法
//表达式T(v)将值v转换为类型
//T:就是数据类型,比如int32,int64,float32等等,v:就是需要转换的变量
//案例演示
//演示golang中基本数据类型的转换
func main(){
var i int32 = 100
//希望将i = float
var n1 float32 =float32(i)
var n2 float32 =float32(i)
fmt.Println(“i=%v n1=%v n2=%v”,i,n1,n2)
//Go中,数据类型的转换可以是从表示范围小-表示范围大,也可以,范围大-范围小
//转换的是变量存储的数据(即值),变量本身的数据类型并没有变化!
fmt.Printf(“i type is %T”,i)//int32
//在转换中,比如将int64转成int8,编译时不会报错,只是转换的记过时按溢出处理,和我们希望的结果不一样。
var num1 int64 = 999999
var num2 int8 = int8(num1)//
fmt.Println(“num2=”,num2)
/*下面为不正确的写法
var n1 int32 = 12
var n2 int64
var n3 int8
n2 = n1 + 20//int32>int64错误
n3 = n1 + 20//int32>int8错误
fmt.Println(“n2”,n2,“n3=”,n3)
*/
/*下面为正确写法
var n1 int32 = 12
var n2 int64
var n3 int8
n2 = int64(n1) + 20//int32>int64错误
n3 = int8(n1) + 20//int32>int8错误
fmt.Println(“n2”,n2,“n3=”,n3)
*/
//基本数据类型和string的转换
/*在程序开发中,我们经常需要将基本数据类型转换成string类型。
或者将string类型转成基本数据类型。
基本类型转string类型
方式1:fmt.Sprintf("%参数",表达式【个人习惯这个,灵活】
1)参数需要和表达式的数据类型相匹配
2)fmt.Sprint()…会返回转换后的字符串
3)案例演示
方式2:使用strconv包的函数
基本介绍
//演示golang中基本数据练习转成string使用
func main(){
var num1 int =99
var num2 float64 =23.456
var b bool = true
var mychar byte = ‘h’
var str string //空的str
//使用第一种方式来转换 fmt.Sprint方法
str = fmt.Sprintf("%d",num1)
fmt.printf(“str type %T str = %v”,str,str)
str = fmt.Sprintf("%f",num2)
fmt.printf(“str type %t str = %v\n”,str,str)
str = fmt.Sprintf("%t,b)
fmt.Printf(“str type %t str=%q\n”,str,str)
str = fmt.Sprintf("%c",mychar)
fmt.Printf(“str type %t str=%q\n”,str,str)
//第二种方式strconv函数
var num int = 99
var num2 float64 = 23.456
var b2 bool = true
str = strconv.FormatInt(int64(num3),10)
fmt.Printf(“str type %T str =%q\n”,str,str)
//strconv.FormatFloat(num4,‘f’,10,64)
//说明:‘f’格式10:表示小数位保留10位64:表示这个小数时float64
str = strconv.FormatFloat(num4,‘f’,10,64)
fmt.Printf(“str type %T str=%q\n”,str,str)
str = strconv.FormatBool(b2)
fmt.Printf(“str type %T str=%q\n”,str,str)
string类型转基本数据类型
1)使用strconv包的函数
2)案例演示
note;因为返回的时int64或者float64,如希望要得到int32,float32等如下处理。
//strconv保重有一个函数Itoa
var num5 int64 = 4567
str = strconv.Itoa(int(num5))
fmt.Printf(“str type %T str=%\n”.str.str)
//演示golang中string转成基本数据类型
func main(){
var str string = “true”
var b bool
// b,_ = strconv.ParseBool(str)
//1.strconv.ParseBool(str)函数会返回两个值(value bool,err error)
//2.因为我只想获取到 value bool,不想获取err 所以我使用_忽略
b = strconv.ParseBool(str)
fmt.Println(“b type %T b=%v”,b,b)
var str2 string = “1234590”
var n1 int64
var n1 int
n1,= strconv.ParseInt(str,10,64)
n2 = (int)n1
fmt.Printf(“n1 type %T n1=%v”,n1,n1)
fmt.Printf(“n2 type %T n2=%v”,n2,n2)
var str3 string = “123.456”
var f1 float64
f1, = strconv.ParseFloat(str3,64)
fmt.Print(“f1 type %T f1=%v\n”,f1,f1)
*/
}