go学习第二天

类型转换

其他类型转字符串类型

通过fmt.Sprintf("%v",要转换的变量)

	var num1 int = 90
	var num2 float64 = 23.456
	var mychar byte= 'a'
	var isB bool =true
	var str string
	var str2 string
	str = fmt.Sprintf("%v", num1)
	fmt.Printf("类型是%T值为%v\n", str, str)
	str2 = fmt.Sprintf("%v", num2)
	fmt.Printf("类型是%T值为%v\n", str2, str2)
	str2=fmt.Sprintf("%v",mychar)
	fmt.Printf("类型是%T值为%v\n",str2,str2)
	str2=fmt.Sprintf("%v",isB)
	fmt.Printf("类型是%T值为%v",str2,str2)

字符串转换成其他类型

bool转字符串

var str string="true"
var b bool
b,_=strconv.ParseBool(str)

int转字符串

strconv.ParseInt 参数1:字符串 参数2:几进制 参数三:要分配的空间数 0 8 16 32 64 返回出来的值是int64类型的 所以必须要用int64来接收

注意(分配的空间要大于传入字符传的值 不然会被截断到空间最大值)
var n int64 
var str = "1234567890"
n=strconv.ParseInt(str,10,8) // 分配了8个空间给他 显然分配的不够
fmt.Printf("类型是%T,值为%v\n",n1,n1) // 类型为int64 值为127

因为分配的是8个空间 不够存放字符串的值 所以被截断到127了

float转字符串

strconv.ParseFloat 参数1:字符串 参数二:要分配的空间数 转换出来的值是float64类型

var str3 string="123.1111"
var n2 float64
n2,_ = strconv.ParseFloat(str3,64)
fmt.Printf("类型是%T,值为%v\n",n2,n2)

注意

1.字符串转数字的时候 只有纯数字的字符串才会转换成功 其他的带任何非数字除了正负号都会转换为0 包括" -123456" 也会转换为0
2.字符串转换bool类型的时候 1和true会转true 其他任意字符串都会转成false

遍历字符串

str := "abcdefg呵呵呵"
for i=0;i<len(str);i++{
	// 遍历带中文字符的字符串 使用原始方法会打印出现乱码 原因是使用原始遍历是无法解析utf8的
		fmt.Printf("%c\n",str[i])
}
// 如果想正确遍历出字符串 可以使用for range
for i,v := range str{
	fmt.Printf("%c\n",v)
}

指针

var i int=15
fmt.Printf("i的地址=%v\n",&i)
// ptr是一个指针变量  
// ptr的类型是*int指向int的一个指针
// ptr是个指向地址的指针  要取得指针指向的值使用*ptr来取
var ptr *int = &i
// 使用*ptr访问i的值
// 也可以使用*ptr修改i的值
*ptr=999
fmt.Println(ptr,&ptr)
fmt.Printf("ptr指向的值%v",i)

键盘输入

var name string 
var age byte
var sal float32
var isPass bool
fmt.Println("输入姓名:")
fmt.Scanln(&name)
fmt.Println("输入年龄")
fmt.Scanln(&age)
fmt.Println("输入薪水")
fmt.Scanln(&sal)
fmt.Println("输入是否通过")
fmt.Scanln(&isPass)
fmt.Printf("姓名是%v,年龄为%v,薪水是%v,通过了吗:%v",name,age,sal,isPass)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值