go变量作用域

痛定思痛。 2021-07-24 19:47 591阅读 0赞

一 点睛

1 函数内部声明/定义的变量叫局部变量,作用域仅限于函数内部。

  1. // 函数
  2. func test() {
  3. // age 和 Name的作用域就只在 test 函数内部
  4. age := 10
  5. Name := "tom~"
  6. fmt.Println("age=", age) // 10
  7. fmt.Println("Name=", Name) // tom~
  8. }

2 函数外部声明/定义的变量叫全局变量,作用域在整个包都有效,如果其首字母为大写,则作用域在整个程序有效。

a 代码

  1. package main
  2. import (
  3. "fmt"
  4. )
  5. // 函数外部声明/定义的变量叫全局变量
  6. // 作用域在整个包都有效,如果其首字母为大写,则作用域在整个程序有效。
  7. var age int = 50
  8. var Name string = "jack~"
  9. // 函数
  10. func test() {
  11. // age 和 Name的作用域就只在 test 函数内部
  12. age := 10
  13. Name := "tom~"
  14. fmt.Println("age=", age) // 10
  15. fmt.Println("Name=", Name) // tom~
  16. }
  17. func main() {
  18. fmt.Println("age=", age) // 50
  19. fmt.Println("Name=", Name) // jack~
  20. test()
  21. }

b 测试

  1. age= 50
  2. Name= jack~
  3. age= 10
  4. Name= tom~

3 如果变量是在一个代码块,比如 for / if 中,那么这个变量的的作用域就在该代码块。

a 代码

  1. package main
  2. import (
  3. "fmt"
  4. )
  5. func main() {
  6. for i := 0; i <= 5; i++ {
  7. fmt.Println("i=", i)
  8. }
  9. var i int // 局部变量
  10. for i = 0; i <= 5; i++ {
  11. fmt.Println("i=", i)
  12. }
  13. fmt.Println("i=", i)
  14. }

b 测试

  1. i= 0
  2. i= 1
  3. i= 2
  4. i= 3
  5. i= 4
  6. i= 5
  7. i= 0
  8. i= 1
  9. i= 2
  10. i= 3
  11. i= 4
  12. i= 5
  13. i= 6

二 小练习

1 请输出下面代码的结果

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2NoZW5ncWl1bWluZw_size_16_color_FFFFFF_t_70

输出结果是

  1. tom
  2. tom
  3. jack
  4. tom

2 请输出下面代码的结果

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2NoZW5ncWl1bWluZw_size_16_color_FFFFFF_t_70 1

发表评论

表情:
评论列表 (有 0 条评论,591人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Go-05 变量作用

    一个变量(常量、类型或函数)在程序中都有一定的作用范围,称之为作用域。Go语言中的变量分为三种类型,分别是局部变量、全局变量和形式参数。 局部变量 在函数体内声明的变量