一、整数型

go语言的整数类型,具体细分有以下几种:

  • 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)

特点:

  1. 默认的数字定义类型是int类型

  2. 带个u就是无符号,只能存正整数

  3. 后面的数字就是2进制的位数

  4. uint8还有一个别名 字节(byte), 一个字节=8bit

var a byte = 'a'
fmt.Println(a)                    // 97
fmt.Println(fmt.Sprintf("%c", a)) // a
  1. int类型的大小取决于所使用的平台

例如uint8,那就是8个二进制位,都用来存储数据,那最小就是0,最大就是2的八次方255

int8,因为要拿一位存符合,使用实际只有七位可用,所以最小的就是-2的七次方-128,最大的就是2的七次方127

二、浮点型

Go语言支持两种浮点型数:float32float64

  1. float32 的浮点数的最大范围约为3.4e38

  2. float64 的浮点数的最大范围约为 1.8e308

如果没有显式声明,则默认是float64

三、字符型

注意哦,是字符,不是字符串

比较重要的两个类型是byte(单字节字符)和rune(多字节字符)

package main

import "fmt"

func main() {
    var c1 = 'a'
    var c2 = 97
    fmt.Println(c1) // 直接打印都是数字,97
    fmt.Println(c2) // 97

    fmt.Printf("%c %c\n", c1, c2) // 以字符的格式打印, a a

    var r1 rune = '中'
    fmt.Printf("%c\n", r1) // 中
}

四、字符串类型

和字符不一样的是,字符的赋值是单引号字符串的赋值是双引号

var s string = "大冬"
fmt.Println(s)

五、布尔类型

布尔类型用于表示逻辑值,只有两个可能的值:true(真)和 false(假)。

以下是一个使用布尔类型的示例:

package main
import "fmt"
func main() {
    b1 := true
    b2 := false
    // 输出:b1 = true
    fmt.Printf("b1 = %t\n", b1)
    // 输出:b2 = false
    fmt.Printf("b2 = %t\n", b2)
}

在这个示例中,我们定义了两个布尔变量 b1 和 b2,并使用 %t 格式说明符将它们以布尔形式输出。

注意:

德摩根定律(De Morgan's Laws)是逻辑学中的两条基本定律,它告诉我们 如何把“非”放到括号里面去

原式

等价于

!(a && b)

!a || !b

!(a || b)

!a && !b

记忆技巧

  • 当否定一个"与"表达式时,变成"或"运算,并对每个变量取反

  • 当否定一个"或"表达式时,变成"与"运算,并对每个变量取反

六、零值

每个变量在声明后都有一个默认的零值。对于数值类型,零值通常是 0;对于布尔类型,零值是 false;对于字符串类型,零值是空字符串;对于接口、函数、切片、映射和通道等复合类型,零值是特定的空值。例如:

var i int = 0
var f float64 = 0.0
var b bool = false
var s string = ""
var m map[string]int
var ch chan int

在这些示例中,i、f、b、s、m 和 ch 分别被声明为不同类型的变量,并被赋予了相应类型的零值。了解和正确处理零值在 Go 编程中是很重要的,因为它们可以影响程序的逻辑和行为。

七、转义字符

转义字符是一种特殊的字符序列,用于表示特定的字符或控制字符。在 Go 语言中,常见的转义字符包括:

  • \n:换行符

  • \t:制表符

  • \:反斜杠

  • \":双引号

  • ':单引号

以下是一个使用转义字符的示例:

package main
import "fmt"
func main() {
    // 输出:Hello, Golang!
    fmt.Println("Hello, Golang!") 
    // 输出:Hello, \
    //       Golang!
    fmt.Println("Hello, \\ Golang!") 
    // 输出:Hello, "Golang!
    fmt.Println("Hello, \"Golang!") 
}

在上述示例中,我们使用了反斜杠 \ 来转义特殊字符,例如双引号和反斜杠本身。这样可以确保这些字符被正确解析和显示。

八、多行字符串

多行字符串可以使用 ```` 来表示。这允许在一行中输入多行文本。

以下是一个使用多行字符串的示例:

package main
import "fmt"
func main() {
    // 输出:This is a
    //         multi-line string.
    fmt.Println(`This is a
multi-line string.`)
}

在这个示例中,多行字符串 This is a multi-line string. 被正确地输出。多行字符串可以方便地表示包含换行符的文本内容。