• 68_Go基础_1_35 指针函数


     1 package main
     2 
     3 import "fmt"
     4 
     5 func fun1() {
     6     fmt.Println("fun1().....")
     7 }
     8 
     9 // 普通函数
    10 func fun2() [4]int {
    11     arr := [4]int{1, 2, 3, 4}
    12     return arr
    13 }
    14 
    15 // 指针函数
    16 func fun3() *[4]int {
    17     arr := [4]int{5, 6, 7, 8}
    18     fmt.Printf("函数中arr的地址:%p\n", &arr) // 函数中arr的地址:0xc000010260
    19     return &arr
    20 }
    21 
    22 func main() {
    23     /*
    24         函数指针:一个指针,指向了一个函数的指针。
    25             因为go语言中,function,默认看作一个指针,没有*。
    26 
    27 
    28             slice,map,function
    29 
    30         指针函数:一个函数,该函数的返回值是一个指针。
    31 
    32     */
    33     var a func()
    34     a = fun1
    35     a() // fun1().....
    36 
    37     arr1 := fun2()
    38     fmt.Printf("arr1的类型:%T,地址:%p,数值:%v\n", arr1, &arr1, arr1)
    39     // arr1的类型:[4]int,地址:0xc0000101e0,数值:[1 2 3 4]
    40 
    41     arr2 := fun3() // 函数中arr的地址:0xc000010260
    42     fmt.Printf("arr2的类型:%T,地址:%p,数值:%v\n", arr2, &arr2, arr2)
    43     // arr2的类型:*[4]int,地址:0xc000006030,数值:&[5 6 7 8]
    44     fmt.Printf("arr2指针中存储的数组的地址:%p\n", arr2)
    45     // arr2指针中存储的数组的地址:0xc000010260
    46 }
  • 相关阅读:
    nginx配置文件中的location中文详解
    binlog、redo log、undo log区别
    OLTP和OLAP的区别
    MPP、SMP、NUMA概念介绍
    NUMA体系结构介绍
    在Linux下判断系统当前是否开启了超线程
    NUMA的取舍与优化设置
    LRU缓存算法
    optimize table
    使用innodb_force_recovery解决MySQL崩溃无法重启问题
  • 原文地址:https://www.cnblogs.com/luwei0915/p/15630062.html
Copyright © 2020-2023  润新知