您现在的位置是:首页 > 网站制作 > gogo

Go 语言变量作用域

胜于蓝2013-12-30【go】人已围观

简介作用域为已声明标识符所表示的常量、类型、变量、函数或包在源代码中的作用范围。Go 语言中变量可以在三个地方声明: 函数内定义的变量称为局部变量 函数外定义的变量称为全

作用域为已声明标识符所表示的常量、类型、变量、函数或包在源代码中的作用范围。5m7胜于蓝|优秀个人博客

Go 语言中变量可以在三个地方声明:5m7胜于蓝|优秀个人博客

  • 函数内定义的变量称为局部变量
  • 函数外定义的变量称为全局变量
  • 函数定义中的变量称为形式参数

接下来让我们具体了解局部变量、全局变量和形式参数。5m7胜于蓝|优秀个人博客


局部变量

在函数体内声明的变量称之为局部变量,它们的作用域只在函数体内,参数和返回值变量也是局部变量。5m7胜于蓝|优秀个人博客

以下实例中 main() 函数使用了局部变量 a, b, c:5m7胜于蓝|优秀个人博客

实例

package main5m7胜于蓝|优秀个人博客
5m7胜于蓝|优秀个人博客
import "fmt"5m7胜于蓝|优秀个人博客
5m7胜于蓝|优秀个人博客
func main() {5m7胜于蓝|优秀个人博客
   /* 声明局部变量 */5m7胜于蓝|优秀个人博客
   var a, b, c int 5m7胜于蓝|优秀个人博客
5m7胜于蓝|优秀个人博客
   /* 初始化参数 */5m7胜于蓝|优秀个人博客
   a = 105m7胜于蓝|优秀个人博客
   b = 205m7胜于蓝|优秀个人博客
   c = a + b5m7胜于蓝|优秀个人博客
5m7胜于蓝|优秀个人博客
   fmt.Printf ("结果: a = %d, b = %d and c = %d\n", a, b, c)5m7胜于蓝|优秀个人博客
}

以上实例执行输出结果为:5m7胜于蓝|优秀个人博客

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

全局变量

在函数体外声明的变量称之为全局变量,全局变量可以在整个包甚至外部包(被导出后)使用。5m7胜于蓝|优秀个人博客

全局变量可以在任何函数中使用,以下实例演示了如何使用全局变量:5m7胜于蓝|优秀个人博客

实例

package main5m7胜于蓝|优秀个人博客
5m7胜于蓝|优秀个人博客
import "fmt"5m7胜于蓝|优秀个人博客
5m7胜于蓝|优秀个人博客
/* 声明全局变量 */5m7胜于蓝|优秀个人博客
var g int5m7胜于蓝|优秀个人博客
5m7胜于蓝|优秀个人博客
func main() {5m7胜于蓝|优秀个人博客
5m7胜于蓝|优秀个人博客
   /* 声明局部变量 */5m7胜于蓝|优秀个人博客
   var a, b int5m7胜于蓝|优秀个人博客
5m7胜于蓝|优秀个人博客
   /* 初始化参数 */5m7胜于蓝|优秀个人博客
   a = 105m7胜于蓝|优秀个人博客
   b = 205m7胜于蓝|优秀个人博客
   g = a + b5m7胜于蓝|优秀个人博客
5m7胜于蓝|优秀个人博客
   fmt.Printf("结果: a = %d, b = %d and g = %d\n", a, b, g)5m7胜于蓝|优秀个人博客
}

以上实例执行输出结果为:5m7胜于蓝|优秀个人博客

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

Go 语言程序中全局变量与局部变量名称可以相同,但是函数内的局部变量会被优先考虑。实例如下:5m7胜于蓝|优秀个人博客

实例

package main5m7胜于蓝|优秀个人博客
5m7胜于蓝|优秀个人博客
import "fmt"5m7胜于蓝|优秀个人博客
5m7胜于蓝|优秀个人博客
/* 声明全局变量 */5m7胜于蓝|优秀个人博客
var g int = 205m7胜于蓝|优秀个人博客
5m7胜于蓝|优秀个人博客
func main() {5m7胜于蓝|优秀个人博客
   /* 声明局部变量 */5m7胜于蓝|优秀个人博客
   var g int = 105m7胜于蓝|优秀个人博客
5m7胜于蓝|优秀个人博客
   fmt.Printf ("结果: g = %d\n",  g)5m7胜于蓝|优秀个人博客
}

以上实例执行输出结果为:5m7胜于蓝|优秀个人博客

结果: g = 10

形式参数

形式参数会作为函数的局部变量来使用。实例如下:5m7胜于蓝|优秀个人博客

实例

package main5m7胜于蓝|优秀个人博客
5m7胜于蓝|优秀个人博客
import "fmt"5m7胜于蓝|优秀个人博客
5m7胜于蓝|优秀个人博客
/* 声明全局变量 */5m7胜于蓝|优秀个人博客
var a int = 20;5m7胜于蓝|优秀个人博客
5m7胜于蓝|优秀个人博客
func main() {5m7胜于蓝|优秀个人博客
   /* main 函数中声明局部变量 */5m7胜于蓝|优秀个人博客
   var a int = 105m7胜于蓝|优秀个人博客
   var b int = 205m7胜于蓝|优秀个人博客
   var c int = 05m7胜于蓝|优秀个人博客
5m7胜于蓝|优秀个人博客
   fmt.Printf("main()函数中 a = %d\n",  a);5m7胜于蓝|优秀个人博客
   c = sum( a, b);5m7胜于蓝|优秀个人博客
   fmt.Printf("main()函数中 c = %d\n",  c);5m7胜于蓝|优秀个人博客
}5m7胜于蓝|优秀个人博客
5m7胜于蓝|优秀个人博客
/* 函数定义-两数相加 */5m7胜于蓝|优秀个人博客
func sum(a, b int) int {5m7胜于蓝|优秀个人博客
   fmt.Printf("sum() 函数中 a = %d\n",  a);5m7胜于蓝|优秀个人博客
   fmt.Printf("sum() 函数中 b = %d\n",  b);5m7胜于蓝|优秀个人博客
5m7胜于蓝|优秀个人博客
   return a + b;5m7胜于蓝|优秀个人博客
}

以上实例执行输出结果为:5m7胜于蓝|优秀个人博客

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

初始化局部和全局变量

不同类型的局部和全局变量默认值为:5m7胜于蓝|优秀个人博客

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

Tags:

很赞哦! ()

上一篇:Go 语言函数

下一篇:Go 语言数组

文章评论

当前时间

快速排名

  • 网站建设|万词霸屏,企业软文推广,刷下拉框
  • 快速排名:不用再等SEO三个月,只需3-7天即可把行业关键词覆盖百度搜索引擎首页,点击不收费,排名报表,真实访问量报表一目了然。

合作加盟

  • 扫码成为快钱代理
  • 扫码加站长微信,为您推荐快钱总部负责人
  • 快钱POSS机(电签版)
  • 1,免押版:签约费率快捷交易0.38%,常规交易0.65%
  • 贷记卡单笔≥3000元视为激活
  • 2,,有押版:签约快捷交易0.38%,常规交易0.65%
  • 激活首刷≥99元,扣除99元系统服务费,多出部分shishi到账
  • 电签版ipos参与每月扶持奖励
  • 电签版ipos与Mpos单独考核台均
  • 30台以上有效激活奖励3000元扶持金
  • 当月交易额≥3000元的为活跃用户

快钱代理公告

  • 凡事扫码代理必须实名认证
  • 实名认证后才可拉进代理微信群
  • 代理微信群有相关活动政策等

本站推荐

站点信息

  • 建站时间:2018-10-24
  • 网站程序:帝国CMS7.5
  • 主题模板《今夕何夕》
  • 文章统计4010篇文章
  • 标签管理标签云
  • 统计数据百度统计
  • 微信公众号:扫描二维码,关注我们

X客服在线

关于

服务时间

周一至周五 9:00-18:00