Go学习笔记-基本数据类型

Go学习笔记-基本数据类型

基本介绍

在Go中,数据类型都有一个默认值,当程序没有赋值是,就会保留默认值,又叫零值。

默认值

数据类型默认值
整型0
浮点型0
字符串“”
布尔型false

相互转换

Go在不同类型的变量之间赋值时需要显示转换即不能自动转换。

package main

import (
	"fmt"
)

func main() {

	var a int = 22
	var b float32 = float32(a)
	var c int8 = int8(a)

	fmt.Printf("a的类型%T,a的值%v\n", a, a)
	fmt.Printf("b的类型%T,b的值%v\n", b, b)
	fmt.Printf("c的类型%T,c的值%v\n", c, c)

}

PS E:\go_code\src\note> go run .\bool.go
a的类型int,a的值22
b的类型float32,b的值22
c的类型int8,c的值22

注意事项

  • Go中,数据类型的转换可以从 范围小->范围大 ,也可以范围大->范围小。
  • 被转换的是变量存储的数据(值),变量本身的数据类型并没有变化!!!
  • 在转换中,如将int64转成int8,编译时不会报错,只是转换的结果是按照溢出处理,和我们希望的结果不一样,所以转换时需要考虑范围。
package main

import "fmt"

func main() {

	var a = 99999
	var b int8 = int8(a)

	fmt.Println(b)

}

所得结果溢出,非原数值。

PS E:\go_code\src\note> go run .\bool.go
-97

基本数据类型和string的转换

  1. 方式1 : fmt.Sprintf("%参数", 表达式)
package main

import "fmt"

func main() {

	var a = 1
	var b float64 = 3.14
	var c bool = false
	var d byte = 'k'
	var strRes string

	strRes = fmt.Sprintf("%d", a)
	fmt.Printf("strRes的类型:%T 值是:%v\n", strRes, strRes)

	strRes = fmt.Sprintf("%f", b)
	fmt.Printf("strRes的类型:%T 值是:%v\n", strRes, strRes)

	strRes = fmt.Sprintf("%t", c)
	fmt.Printf("strRes的类型:%T 值是:%v\n", strRes, strRes)

	strRes = fmt.Sprintf("%c", d)
	fmt.Printf("strRes的类型:%T 值是:%v\n", strRes, strRes)

}

PS E:\go_code\src\note> go run .\bool.go
strRes的类型:string 值是:1
strRes的类型:string 值是:3.140000
strRes的类型:string 值是:false
strRes的类型:string 值是:k
  1. 方式2:使用strconv包的函数

string转基本数据类型的注意事项

在将string类型转成基本数据类型是,要确保string类型能够转成有效的数据,比如,我们可以把"123",转成一个整数,但是不能把"hello"转成一个整数,如果这样做,Go直接将其转成0。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值