如何深入掌握Go语言函数精髓?(中篇)

更新于
2026-07-26 11:05:38
17阅读来源:SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计2107个文字,预计阅读时间需要9分钟。

如何深入掌握Go语言函数精髓?(中篇)

Go 函数内存分配图 + Go 函数内存分配,类似栈分配,但本质不同。可以理解为堆内存和栈内存一样,栈中保存的是堆内存的地址。验证:

gopackage main

import fmt

func say() string { return ok}

Go函数内存分配图

Go的函数内存分配,有点像堆分配,有点像,但是本质不是。

可以理解像堆内存一样,栈中保存的是堆的地址。

验证

代码

package main import "fmt" func say() string { return "ok" } func main() { fmt.Printf("say栈上的内容:%p\n",say) }

结果

本质

函数的作用域

作用域这个问题,以前可能或多或少提过,再来复习一下叭。

全局变量

全局变量就是在所有函数外部定义的变量,程序不结束,变量就一直存在。

当然,任何函数都可以访问全局变量。

注:全局变量尽量全部用大写。

阅读全文

本文共计2107个文字,预计阅读时间需要9分钟。

如何深入掌握Go语言函数精髓?(中篇)

Go 函数内存分配图 + Go 函数内存分配,类似栈分配,但本质不同。可以理解为堆内存和栈内存一样,栈中保存的是堆内存的地址。验证:

gopackage main

import fmt

func say() string { return ok}

Go函数内存分配图

Go的函数内存分配,有点像堆分配,有点像,但是本质不是。

可以理解像堆内存一样,栈中保存的是堆的地址。

验证

代码

package main import "fmt" func say() string { return "ok" } func main() { fmt.Printf("say栈上的内容:%p\n",say) }

结果

本质

函数的作用域

作用域这个问题,以前可能或多或少提过,再来复习一下叭。

全局变量

全局变量就是在所有函数外部定义的变量,程序不结束,变量就一直存在。

当然,任何函数都可以访问全局变量。

注:全局变量尽量全部用大写。

阅读全文