登录
首页 >  Golang >  Go问答

在Golang中,如何为函数中的“const”/“var”分配内存?

来源:stackoverflow

时间:2024-02-06 20:06:23 433浏览 收藏

今日不肯埋头,明日何以抬头!每日一句努力自己的话哈哈~哈喽,今天我将给大家带来一篇《在Golang中,如何为函数中的“const”/“var”分配内存?》,主要内容是讲解等等,感兴趣的朋友可以收藏或者有更好的建议在评论提出,我都会认真看的!大家一起进步,一起学习!

问题内容

我正在寻找有关 go 中如何分配/管理内存的清晰信息。请参阅示例:

package main

// memory allocated on program startup?
var str1 = "Hello world!"

func createString() string {
  // memory allocated when function is called?
  var str2 = "Another string"
  return str2
}

在这个示例代码中,go如何管理str1str2的内存?在程序的整个运行期间,str1 的值是否挂在内存中?

如果我在函数作用域内声明字符串变量而不是将它们声明为全局变量,是否可以节省总体程序内存使用量?


正确答案


字符串文字“Hello world!”无论您如何声明变量,“另一个字符串”都会在内存中。在 main 启动之前,str1 将被初始化为指向“Hello world”文字,当 createString 运行时,str2 将被初始化为指向“另一个字符串”。 str1str2 都只包含指针和长度,因此不会消耗太多内存。

简而言之,您无法根据使用文字初始化字符串的位置来节省内存。文字占据了大部分内存,而不是字符串变量。

理论要掌握,实操不能落!以上关于《在Golang中,如何为函数中的“const”/“var”分配内存?》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>