目录
3.数字字面量语法(Number literals syntax)
前言
Go语言中有丰富的数据类型,除了基本的整型、浮点型、布尔型、字符串外,还有数组、切片、结构体、函数、map、通道(channel)等。Go 语言的基本类型和其他语言大同小异。
基本数据类型默认值
整型
1.分类
整型分为以下两个大类:
按长度分为:int8、int16、int32、int64 对应的无符号整型:uint8、uint16、uint32、uint64
其中,uint8就是我们熟知的byte型,int16对应C语言中的short型,int64对应C语言中的long型。
类型 | 描述 |
---|---|
uint8 | 无符号 8位整型 (0 到 255) |
uint16 | 无符号 16位整型 (0 到 65535) |
uint32 | 无符号 32位整型 (0 到 4294967295) |
uint64 | 无符号 64位整型 (0 到 18446744073709551615) |
int8 | 有符号 8位整型 (-128 到 127) |
int16 | 有符号 16位整型 (-32768 到 32767) |
int32 | 有符号 32位整型 (-2147483648 到 2147483647) |
int64 | 有符号 64位整型 (-9223372036854775808 到 9223372036854775807) |
特殊整型
类型 | 描述 |
---|---|
uint | 32位操作系统上就是uint32 ,64位操作系统上就是uint64 |
int | 32位操作系统上就是int32 ,64位操作系统上就是int64 |
uintptr | 无符号整型,用于存放一个指针 |
2.定义声明
按照Go语言中的变量和常量声明语法规范即可
package main
import "fmt"
func main() {
// 定义int类型的整型
//var a int=-10
var a = int(-10)
fmt.Printf("%T\n",a) //int
//定义int64类型的整型
//var b int64 =100000
var b = int64(100000)
fmt.Printf("%T\n",b) //int64
//定义uint8类型的整型
//var c uint8=100
var c = uint8(100)
fmt.Printf("%T\n",c) //uint8
}
3.数字字面量语法(Number literals syntax)
Go1.13版本之后引入了数字字面量语法,这样便于开发者以二进制、八进制或十六进制浮点数的格式定义数字,例如: v := 0b00101101, 代表二进制的 101101,相当于十进制的 45。 v := 0o377,代表八进制的 377,相当于十进制的 255。 v := 0x1p-2,代表十六进制的 1 除以 2²,也就是 0.25。 而且还允许我们用 _ 来分隔数字,比如说: v := 123_456 表示 v 的值等于 123456。 我们可以借助fmt函数来将一个整数以不同进制形式展示。
package main
import "fmt"
func main(){
// 十进制
var a int = 10
fmt.Printf("%d \n", a) // 10
fmt.Printf("%b \n", a) // 1010 占位符%b表示二进制
// 八进制 以0开头
var b int = 077
fmt.Printf("%o \n", b) // 77
// 十六进制 以0x开头
var c int = 0xff
fmt.Printf("%x \n", c) // ff
fmt.Printf("%X \n", c) // FF
}
浮点型
Go语言支持两种浮点型数: float32:float32 的浮点数的最大范围约为 3.4e38占4字节,可以使用常量定义:math.MaxFloat32。 float64: float64 的浮点数的最大范围约为 1.8e308占8字节,可以使用一个常量定义:math.MaxFloat64。 这两种浮点型数据格式遵循IEEE 754标准
1.定义
按照Go语言中的变量和常量声明语法规范即可
package main
import "fmt"
func main() {
//定义float64类型的浮点型
//var a float=1.23456
var a = float32(1.23456)
fmt.Printf("%T\n",a) //float64,go语言中小数都是float64
//定义float32类型的浮点型
//var b float32 =1.23456
var b = float32(1.23456)
fmt.Printf("%T\n",b) //float32
//常量
const c = float32(1.23456)
fmt.Printf("%T\n",c) //uint8
}
2.注意
使用细节
说明