📜  如何在 Golang 中找到 Channel、Pointer、Slice、String 和 Map 的长度?(1)

📅  最后修改于: 2023-12-03 14:52:18.304000             🧑  作者: Mango

如何在 Golang 中找到 Channel、Pointer、Slice、String 和 Map 的长度?

在 Golang 中,我们经常需要获取不同数据类型的长度,本文将介绍如何获取 Channel、Pointer、Slice、String 和 Map 的长度。

获取 Channel 的长度

Channel 是 Golang 中一种用于并发通信的数据类型,我们可以通过 len() 函数获取 Channel 的长度,如下所示:

package main

import (
    "fmt"
)

func main() {
    ch := make(chan int, 3)
    ch <- 1
    ch <- 2
    ch <- 3

    fmt.Println("Channel length:", len(ch))
}

以上代码中,我们创建了一个缓冲为 3 的 Channel,并向其中插入 3 个元素,最后使用 len() 函数获取该 Channel 的长度并输出。

获取 Pointer 的长度

Pointer 是 Golang 中一种数据类型,表示指针,可以指向不同的变量和数据类型。由于 Pointer 只是一个指向内存地址的引用,因此没有长度的概念,不能使用 len() 函数获取长度。

获取 Slice 的长度

Slice 是 Golang 中一种动态数组,我们可以通过 len() 函数获取 Slice 的长度,如下所示:

package main

import (
    "fmt"
)

func main() {
    s := []int{1, 2, 3, 4, 5}
    fmt.Println("Slice length:", len(s))
}

以上代码中,我们创建了一个包含 5 个元素的 Slice,并使用 len() 函数获取其长度并输出。

获取 String 的长度

String 是 Golang 中一种数据类型,表示字符串,我们可以通过 len() 函数获取 String 的长度,如下所示:

package main

import (
    "fmt"
)

func main() {
    str := "Hello, World!"
    fmt.Println("String length:", len(str))
}

以上代码中,我们创建了一个字符串,并使用 len() 函数获取其长度并输出。

获取 Map 的长度

Map 是 Golang 中一种数据类型,表示字典或映射表,我们可以通过 len() 函数获取 Map 的长度,如下所示:

package main

import (
    "fmt"
)

func main() {
    m := map[string]int{
        "apple":  1,
        "banana": 2,
        "orange": 3,
    }

    fmt.Println("Map length:", len(m))
}

以上代码中,我们创建了一个包含 3 个元素的 Map,并使用 len() 函数获取其长度并输出。

通过以上代码,我们可以学习到如何在 Golang 中获取 Channel、Pointer、Slice、String 和 Map 的长度。