每天进步一点点!
基本数据类型
(一) 整型
1. 有符号:int8,int16,int32,int64
2. 无符号:uint8,uint16,uint32,uint64
3. 特殊整型
一、uint:32位操作系统上就是uint32,64位操作系统上就是uint64
二、int:32位操作系统上就是int32,64位操作系统上就是int64
三、uintptr:无符号整型,用于存放一个指针
四、数字字面量语法:
Go1.13版本之后引入了数字字面量语法,可以二进制、八进制或十六进制浮点数的格式定义数字:
package main
import "fmt"
func main(){
// 十进制
var a int = 10
fmt.Printf("%d \n", a) // 10
fmt.Printf("%b \n", a) // 1010 占位符%b表示二进制
// 二进制 以0b开头
var b int = 0b00101101
fmt.Printf("%d \n", b) // 10
fmt.Printf("%b \n", b) // 1010 占位符 %b 表示二进制
// 八进制 以0开头
var c int = 077
fmt.Printf("%o \n", c) // 77 占位符 %o 表示八进制
// 十六进制 以0x开头
var d int = 0xff
fmt.Printf("%x \n", d) // ff 占位符 %x 表示小写字母的十六进制
fmt.Printf("%X \n", d) // FF 占位符 %X 表示大写字母的十六进制
}
(二) 浮点型
1. float32:最大范围约为 3.4e38,可以使用常量定义:math.MaxFloat32
2. float64:最大范围约为 1.8e308,可以使用一个常量定义:math.MaxFloat64
package main
import (
"fmt"
"math"
)
func main() {
fmt.Printf("%f\n", math.Pi) //3.141593
fmt.Printf("%.2f\n", math.Pi) //3.14 "%.2f"表示要打印一个浮点数,并且保留两位小数
}
(三) 布尔型
1. 布尔型数据只有true(真)和false(假)两个值。
2. 布尔型无法参与数值运算,也无法与其他类型进行转换。
(四) 字符串
1. 多行字符串
s1 := `第一行
第二行
第三行
`
fmt.Println(s1)
//反引号间换行将被作为字符串中的换行,但是所有的转义字符均无效,文本将会原样输出。
2. byte和rune类型(Go 语言的字符有以下两种)
- byte 型,代表一个ASCII码字符。(实际是uint8类型)
- rune类型,代表一个 UTF-8字符。(实际是int32类型)
3. 修改字符串
需要先将其转换成[]rune或[]byte,完成后再转换为string。无论哪种转换,都会重新分配内存,并复制字节数组。
func changeString() {
s1 := "english"
// 强制类型转换
byteS1 := []byte(s1)
byteS1[0] = 'c'
fmt.Println(string(byteS1))
s2 := "刘亦菲"
runeS2 := []rune(s2)
runeS2[0] = '李'
fmt.Println(string(runeS2))
}