go基本数据类型

174 阅读2分钟

每天进步一点点!

基本数据类型

(一) 整型

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 语言的字符有以下两种)

  1. byte 型,代表一个ASCII码字符。(实际是uint8类型)
  2. 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))
}

(五) 复数