如何在Golang中找到指针的容量?

指针在Go编程语言或Golang中, 是一个变量, 用于存储另一个变量的内存地址。 Golang中的指针也称为特殊变量。变量用于在系统中的特定内存地址存储一些数据。始终以十六进制格式找到内存地址(以0x开头, 如0xFFAAF等)。

在指针中, 你可以借助来查找指针的容量。

cap函数-这个函数是一个内置函数, 返回指向数组的指针的容量。在Go语言中, 容量定义了存储在指向数组的指针中的最大元素数。此函数在内置中定义。

语法如下:

func cap(l Type) int

在这里, 类型升是一个指针。让我们借助示例来讨论这个概念:

例子:

//Go program to illustrate how to find the
//capacity of the pointer to an array
package main
  
import (
     "fmt"
)
  
//Main function
func main() {
  
     //Creating and initializing
     //pointer to array
     //Using var keyword
     var ptr1 [7]* int
     var ptr2 [5]*string
     var ptr3 [8]*float64
  
     //Finding the capacity of
     //the pointer to array
     //Using cap function
     fmt.Println( "Capacity of ptr1: " , cap(ptr1))
     fmt.Println( "Capacity of ptr2: " , cap(ptr2))
     fmt.Println( "Capacity of ptr3: " , cap(ptr3))
  
}

输出如下:

Capacity of ptr1 : 7
Capacity of ptr2 : 5
Capacity of ptr3 : 8

示例2:

//Go program to illustrate how to find the
//capacity of the pointer to an array
package main
  
import (
     "fmt"
)
  
//Main function
func main() {
  
     //Creating an array
     arr := [8] int {200, 300, 400, 500, 600, 700, 100, 200}
      
     var x int
  
     //Creating pointer
     var p [5]* int
  
     //Assigning the address
     for x = 0; x <len(p); x++ {
         p[x] = &arr[x]
     }
  
     //Displaying result
     for x = 0; x <len(p); x++ {
      
         fmt.Printf( "Value of p[%d] = %d\n" , x, *p[x])
     }
  
     //Finding capacity
     //using cap() function
     fmt.Println( "Capacity of arr: " , cap(arr))
     fmt.Println( "Capacity of p: " , cap(p))
}

输出如下:

Value of p[0] = 200
Value of p[1] = 300
Value of p[2] = 400
Value of p[3] = 500
Value of p[4] = 600
Capacity of arr:  8
Capacity of p:  5

来源:

https://www.srcmini02.com/68587.html

微信公众号
手机浏览(小程序)
0
分享到:
没有账号? 忘记密码?