Go 语言获取 map 长度程序:len 函数、循环、反射实现示例


发布日期 : 2019-01-20 10:08:31 UTC

访问量: 10 次浏览

获取哈希集合大小的 Golang 程序

在 Golang 中,我们可以使用各种内部函数或包,如 len() 函数或 reflect 包,来获取哈希集合(map)的大小。哈希集合包含哈希映射,通常用于创建键值对,基于键值对它缩短执行时间。在这个程序中,我们使用了两个例子来获取哈希集合的大小。

语法

func make([] type, size, capacity)

Go 语言中的 make 函数用于创建数组/映射,其中参数为要创建的变量类型、其大小和容量。

func range(variable)

range 函数用于迭代任何数据类型。为了使用它,我们首先要写入 range 关键字,后跟要迭代的数据类型,结果是循环迭代到变量的最后一个元素。

func len(v Type) int

len() 函数用于获取任何参数的长度。它将一个参数作为数据类型变量,其长度我们希望找到并返回整数值,该值是变量的长度。

使用 len() 函数

在这个方法中,我们将使用 make 函数在 Golang 中创建一个哈希映射,然后使用 len 函数来查找哈希映射的长度,长度将使用 fmt 包打印在控制台上。

算法

  1. 在程序中创建程序包 main 并声明 fmt(格式包)包,其中 main 生成可执行代码,fmt 帮助格式化输入和输出。
  2. 创建一个 main 函数,在该函数中使用 make 函数创建一个哈希映射,这是 Golang 中的内置函数。
  3. 向哈希映射的键(key1key2key3key4)分配值。
  4. 使用 len() 方法计算哈希映射的长度。
  5. 使用 fmt 包中的 Println() 函数在控制台上打印地图的长度,其中 ln 表示换行。

示例

以下示例演示了使用 len 函数的 Golang 程序,以获取哈希集合的大小:

package main

import "fmt"

func main() {
   hashmap := make(map[string]int)
   hashmap["key1"] = 10
   hashmap["key2"] = 20
   hashmap["key3"] = 30
   hashmap["key4"] = 40

   fmt.Println("Size of map is:", len(hashmap))
}

输出:

Size of map is: 4

使用 size 变量

在这种方法中,我们将使用 size 变量来计算哈希映射的大小。哈希映射将类似于上一个示例中创建的方式创建。然后,它将进行迭代,并且在每次迭代时,它将递增 size 变量。

算法

  1. 在程序中创建程序包 main 并声明 fmt(格式包)包,其中 main 生成可执行代码,fmt 帮助格式化输入和输出。
  2. main 函数中使用 make 函数创建哈希映射,就像上一个示例中所做的那样。
  3. 将值添加到键元素中,例如,创建了 key1key2key3key4
  4. 创建一个变量 size,它将告诉我们哈希映射的大小。
  5. 在哈希映射的范围内运行循环,并且在每次迭代中递增 size 变量。
  6. 最后,当循环终止时,使用 Println 函数打印映射的大小,其中 ln 表示换行。

示例

以下示例演示了 Golang 程序如何使用 size 变量获取哈希集合的大小:

package main

import "fmt"

func main() {
   hashmap := make(map[string]int)
   hashmap["key1"] = 10
   hashmap["key2"] = 20
   hashmap["key3"] = 30
   hashmap["key4"] = 40

   var size int
   for range hashmap {
      size++
   }

   fmt.Println("Size of map is:", size)
}

输出:

Size of map is: 4

使用 reflect

在这个方法中,我们将编写一个 Golang 程序来使用 reflect 包中的 ValueOf 函数来获取哈希集合的大小。

算法

  1. 在程序中创建 main 包并声明 fmt(格式包)包,其中 main 用于产生可执行代码,fmt 可帮助格式化输入和输出。
  2. 创建一个 main 函数,其中进一步创建一个哈希表,其中键的类型为 string,值的类型为 int
  3. 然后,使用 reflect 包中的 ValueOf 函数和 Len 方法获取哈希集合的大小。
  4. 然后,使用 fmt 包的 Println 函数打印哈希集合的大小,其中 ln 表示新行。

示例

下面的示例演示了使用 reflect 包获取哈希集合大小的 Golang 程序:

package main

import (
   "fmt"
   "reflect"
)

func main() {
   hashmap := map[string]int{
      "pencil": 10,
      "pen": 20,
      "scale": 30,
   }
   size := reflect.ValueOf(hashmap).Len()
   fmt.Println("The size of hash collection is:", size)
}

输出:

The size of hash collection is: 3

结论

我们使用了两种示例来执行此程序以获取哈希集合的大小。在第一个示例中,我们使用了 len 方法来获取映射的大小,在第二个示例中,我们使用了一个变量 size 来获取映射的大小。这两个示例都给出了期望的输出。