广告
返回顶部
首页 > 资讯 > 后端开发 > GO >详解Go语言变量作用域
  • 400
分享到

详解Go语言变量作用域

详解go语言GOgo语言作用域变量 2022-06-07 20:06:47 400人浏览 安东尼
摘要

目录局部变量全局变量形式参数初始化局部和全局变量作用域为已声明标识符所表示的常量、类型、变量、函数或包在源代码中的作用范围。 Go 语言中变量可以在三个地方声明: 函数内定

目录

局部变量

全局变量

形式参数

初始化局部和全局变量

作用域为已声明标识符所表示的常量、类型、变量、函数或包在源代码中的作用范围。

Go 语言中变量可以在三个地方声明:

函数内定义的变量称为局部变量

函数外定义的变量称为全局变量

函数定义中的变量称为形式参数

接下来让我们具体了解局部变量、全局变量和形式参数。

局部变量

在函数体内声明的变量称之为局部变量,它们的作用域只在函数体内,参数和返回值变量也是局部变量。

以下实例中 main() 函数使用了局部变量 a, b, c:


package main
 
import "fmt"
 
func main() {
   
   var a, b, c int
 
   
   a = 10
   b = 20
   c = a + b
 
   fmt.Printf ("结果: a = %d, b = %d and c = %d\n", a, b, c)
}

以上实例执行输出结果为:

结果: a = 10, b = 20 and c = 30

全局变量

在函数体外声明的变量称之为全局变量,全局变量可以在整个包甚至外部包(被导出后)使用。

全局变量可以在任何函数中使用,以下实例演示了如何使用全局变量:


package main
 
import "fmt"
 

var g int
 
func main() {
 
   
   var a, b int
 
   
   a = 10
   b = 20
   g = a + b
 
   fmt.Printf("结果: a = %d, b = %d and g = %d\n", a, b, g)
}

以上实例执行输出结果为:

结果: a = 10, b = 20 and g = 30

Go 语言程序中全局变量与局部变量名称可以相同,但是函数内的局部变量会被优先考虑。实例如下:


package main
 
import "fmt"
 

var g int = 20
 
func main() {
   
   var g int = 10
 
   fmt.Printf ("结果: g = %d\n",  g)
}

以上实例执行输出结果为:

结果: g = 10

形式参数

形式参数会作为函数的局部变量来使用。实例如下:


package main
 
import "fmt"
 

var a int = 20;
 
func main() {
   
   var a int = 10
   var b int = 20
   var c int = 0
 
   fmt.Printf("main()函数中 a = %d\n",  a);
   c = sum( a, b);
   fmt.Printf("main()函数中 c = %d\n",  c);
}
 

func sum(a, b int) int {
   fmt.Printf("sum() 函数中 a = %d\n",  a);
   fmt.Printf("sum() 函数中 b = %d\n",  b);
 
   return a + b;
}

以上实例执行输出结果为:

main()函数中 a = 10
sum() 函数中 a = 10
sum() 函数中 b = 20
main()函数中 c = 30

初始化局部和全局变量

不同类型的局部和全局变量默认值为:

数据类型 初始化默认值
int 0
float32 0
pointer nil

形参使用,比较 sum 函数中的 a 和 main 函数中的 a,sum 函数中虽然加了 1,但是 main 中还是原值 10:


package main
 
import "fmt"
 

var a int = 20
 
func main() {
    
    var a int = 10
    var b int = 20
    var c int = 0
 
    fmt.Printf("main()函数中 a = %d\n", a)
    c = sum(a, b)
    fmt.Printf("main()函数中 a = %d\n", a)
    fmt.Printf("main()函数中 c = %d\n", c)
}
 

func sum(a, b int) int {
    a = a + 1
    fmt.Printf("sum() 函数中 a = %d\n", a)
    fmt.Printf("sum() 函数中 b = %d\n", b)
    return a + b
}

输出为:

main()函数中 a = 10
sum() 函数中 a = 11
sum() 函数中 b = 20
main()函数中 a = 10
main()函数中 c = 31

以上就是详解Go 语言变量作用域的详细内容,更多关于Go 语言变量作用域的资料请关注编程网其它相关文章!


您可能感兴趣的文档:

--结束END--

本文标题: 详解Go语言变量作用域

本文链接: https://www.lsjlt.com/news/30653.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 详解Go语言变量作用域
    目录局部变量全局变量形式参数初始化局部和全局变量作用域为已声明标识符所表示的常量、类型、变量、函数或包在源代码中的作用范围。 Go 语言中变量可以在三个地方声明: 函数内定...
    99+
    2022-06-07
    详解go语言 GO go语言 作用域 变量
  • 详解Go语言中的作用域和变量隐藏
    目录前言包隐藏全局变量类型强制闭包:= 的情况总结前言 变量隐藏在 Go 中可能会令人困惑,让我们尝试弄清楚。 package main import ( "fmt" "io/...
    99+
    2022-11-13
  • go语言变量的作用域是什么
    这篇“go语言变量的作用域是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“go语言变量的作用域是什么”文章吧。go语言变...
    99+
    2023-07-05
  • Go语言中变量的作用域是什么
    这篇文章给大家介绍Go语言中变量的作用域是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。作用域为已声明标识符所表示的常量、类型、变量、函数或包在源代码中的作用范围。Go 语言中变量可以在三个地方声明:函数内定义的变...
    99+
    2023-06-08
  • C语言:变量的作用域和生命周期详解
    目录1.全局变量和局部变量2.变量的作用域2-1.声明外部变量的方法3.变量的生命周期4. 局部变量&自动变量总结1.全局变量和局部变量 定义在代码块外部的是全局变量 定义在...
    99+
    2022-11-12
  • Go语言中的作用域和变量怎么隐藏
    这篇文章主要介绍“Go语言中的作用域和变量怎么隐藏”,在日常操作中,相信很多人在Go语言中的作用域和变量怎么隐藏问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Go语言中的作用域和变量怎么隐藏”的疑惑有所帮助!...
    99+
    2023-06-30
  • go语言的变量定义示例详解
    目录前言定义单个变量定义多个变量定义相同类型的多个变量变量的初始化变量类型的省略var关键字的省略(简短声明)全局变量与局部变量特别的变量名未使用变量的限制常量前言 特别说明: 本文...
    99+
    2022-12-20
    go语言变量定义 go 变量
  • Go语言的变量定义详情
    目录一、变量声明变量二、短声明指针三、new函数四、变量的生命期五、变量的作用域一、变量 声明变量 go定义变量的方式和c,c++,java语法不一样,如下: var 变量名 类型,...
    99+
    2022-11-13
  • Python变量的作用域详解
    目录总结每个变量都有自己的作用域,在作用域外使用该变量非法 函数体内的变量为函数的局部变量,在函数体外不可使用 >>>def f(): x=5 >&...
    99+
    2022-11-12
  • Python中变量的作用域详解
    目录1、作用于的概念2、局部变量3、全局变量4、变量的查找5、作用域中可变数据类型变量6、多函数程序执行流程总结1、作用于的概念 变量作用域指的是变量生效的范围,在Python中一共...
    99+
    2022-11-13
  • JavaScript中变量的作用域详解
    一、变量的分类 在JavaScript中变量分为两种: 全局变量局部变量 二、变量的作用域 1、局部变量的作用域 局部变量:在函数内部定义的变量称为局部变量,其作用域为该函数内部,在...
    99+
    2022-11-13
  • 重学Go语言之变量与常量的声明与使用详解
    目录变量变量名声明变量作用域常量iota 常量生成器小结变量 什么是变量?变量是一块可以随时存放数据的内存区域。在我们申请这块内存区域(声明变量)时,需要指定变量名以及变量的数据类型...
    99+
    2023-03-02
    Go语言变量 常量 Go语言变量 Go语言 常量
  • go语言中匿名函数的作用域陷阱详解
    众所周知在go语言中函数也可以当作变量在程序中使用,我们可以使用函数字面量在任何表达式内指定函数变量。但是在编写代码的时候请注意:如果一个函数在使用不是在该函数内部定义的变量时,这个...
    99+
    2022-11-13
  • Python中的变量和作用域详解
    作用域介绍 python中的作用域分4种情况: L:local,局部作用域,即函数中定义的变量; E:enclosing,嵌套的父级函数的局部作用域,即包含此函数的上级函数的局部作用域,但不是全局的; G...
    99+
    2022-06-04
    变量 详解 作用
  • C语言函数封装及变量的作用域
    目录1. for循环示例2. 模拟实现投票系统。switch3. 计算字符串空格、数字等数据数量4. 字符串转整数。5. 整数转字符串6. 浮点数转字符串7. 字符串转浮点数8. 函...
    99+
    2022-11-13
  • Golang函数中变量作用域的详解
    Golang函数中变量作用域的详解在Golang中,函数是基本的代码块,用于完成某个特定的任务或计算。函数内部定义的变量有其特定的作用域,即变量在哪些代码段中可见和可用。本文将详细讨论Golang函数中变量的作用域,并提供具体的代码示例。局...
    99+
    2023-12-23
    Golang函数中的作用域 变量作用域详解 Golang函数变量的作用范围
  • Go语言变量与基础数据类型详情
    目录一、基础介绍1、Go 的特性2、Go 的常用命令3、Hello Word二、变量1、定义方式三、常量四、基础数据类型1、数字2、浮点型(小数,32/64表示小数点后长度多少位)3...
    99+
    2022-11-12
  • C语言之详解静态变量static
    目录关键字static    修饰局部变量运行结果:调用静态变量static运行结果:结论: 修饰全局变量 代码执行:代码执行:结论...
    99+
    2023-05-15
    C语言详解static关键字 C语言static关键字 详解static关键字
  • Go语言基础变量的声明及初始化示例详解
    目录一、概述二、声明变量三、编译器推导类型的格式【一定要赋值】四、短变量声明并初始化五、匿名变量——没有名字的变量六、注意七、案例一、概述 变量的功能是存储用户的数据 二、声明变量 ...
    99+
    2022-11-12
  • python变量作用域与列表入门详解
    变量作用域 变量由作用范围限制 分类:按照作用域分类 全局(global):在函数外部定义 局部(local):在函数内部定义 变量的作用范围 全局变量:在整个全局...
    99+
    2022-11-11
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作