今天来学习Go语言中的基本数据类型,还是相当丰富,除了基本的整型、浮点型、布尔型、字符串、数组,还有切片、结构体、函数、map、通道(channel)等。其实Go语言的基本类型和其他语言大同小异,下面我们来认识一下吧~
基本数据类型
整型
整型分类两大类:
•有符号 -int8、int16、int32、int64•无符号 -uint8、uint16、uint32、uint64
详细说明
特殊整型
特殊整型
说明:它们的类型会根据操作系统的不同而不同,因此如果要使用它们需要考虑在不同平台之间的差异性,建议慎用。
八进制、十六进制
GO语言中不可以直接定义二进制数,关于八进制、十六进制小示例如下:
package main
import "fmt"
func main() { // 十进制 var i1 = 101 fmt.Printf("%d\n", i1) // 十进制 101 fmt.Printf("%b\n", i1) // 十进制转二进制 1100101 fmt.Printf("%o\n", i1) // 十进制转八进制 145 fmt.Printf("%x\n", i1) // 十进制转十六进制 65
// 八进制,以0开头 i2 := 066 fmt.Printf("%d\n", i2) // 十进制 54
// 十六进制,以0x开头 i3 := 0x111 fmt.Printf("%d\n", i3) // 十进制 273}
浮点型
GO语言中的浮点型分为两类:float32和float64。
•float32- 最大值为3.4e38,可以使用常量math.MaxFloat32来定义。•float64- 最大值为1.8e308,可以使用常量math.MaxFloat64来定义。
打印浮点型可以使用%f,小示例如下:
package main
import ( "fmt" "math")
func main() { var a1 = 123.11726366 fmt.Printf("%T\n", a1) // float64 fmt.Printf("%f\n", a1) // 123.117264 会有一定的精度损失
a2 := float32(13.222) // 指定具体类型,不指定时默认为float64 fmt.Printf("%T\n", a2) // float32 fmt.Printf("%f\n", a2) // 13.222000
// 最大范围 fmt.Printf("%f\n", math.MaxFloat32) fmt.Printf("%f\n", math.MaxFloat64)}
布尔型
GO语言以bool场景布尔型数据,布尔型只有true和false两个值。
注意:
•布尔型的默认值为false•不允许将整型强制转为布尔型(和PHP不一样)•布尔型也不能参与数值运算
字符串
GO语言中的字符串与其它语言基本一致,内部实现使用utf-8编码,字符串的值为双引号的内容,如下:
a1 := "hello"a2 := "你好"
// 多行字符串,使用“反引号”,指原样输出a3 := `第一行第二行`
注意:
•字符串必须使用双引号包裹,单引号包裹的是字符!!!
字符串转义符
GO语言的字符串常见转义符包含回车、换行、单双引号、制表符等,具体如下:
字符串转义符
字符串常用操作
字符串常用操作
类型转换
GO语言中只有强制类型转换,不存在隐式转换这么一说,语法格式如下:
T(表达式)int(3.14)
拓展小知识
fmt常用点位符
我们打印数据时经常会用到fmt.Printf(…)函数及相应的点位符,那么它常用的都有哪些呢?
package main
import "fmt"
func main() { a1 := 100 fmt.Printf("%T\n", a1) // 数据类型 fmt.Printf("%v\n", a1) // 数据值 100 fmt.Printf("%b\n", a1) // 二进制 fmt.Printf("%d\n", a1) // 十进制 fmt.Printf("%o\n", a1) // 八进制 fmt.Printf("%x\n", a1) // 十六进制
a2 := "hello" fmt.Printf("%s\n", a2) // 字符串值 hello fmt.Printf("%#v\n", a2) // 带类型的数据值 "hello" fmt.Printf("%c\n", 'B') // 字符 B}
领取专属 10元无门槛券
私享最新 技术干货