其他分享
首页 > 其他分享> > Go语言趣学指南-lesson4

Go语言趣学指南-lesson4

作者:互联网

变量作用域

本章学习目标

1、知悉变量作用域的好处

2、学会更简洁的方法声明变量

3、了解for、if和switch是如何和变量作用域交互的

4、学会如何控制作用域的范围

什么是作用域

短声明

简单声明为var关键字提供了另一种备选语法,

var count = 10 和count := 10 等价,简短声明还能用在一些无法使用var关键字的地方

例子(4.2)

package main

import (
	"fmt"
)

func main() {
	var count = 0
	for count := 10; count > 0; count-- {
		fmt.Println(count) //随着循环结束这个count变量会释放掉
	}
	fmt.Println(count) //count变量仍在function作用域中
}


执行结果:

10
9
8
7
6
5
4
3
2
1
0

作用域的范围

例子(4.3)

package main

import (
	"fmt"
	"math/rand"
)

var era = "AD" //era变量在整个包都是可用的

func main() {
	year := 2018 //era、year变量都处于作用域之内
	switch month := rand.Intn(12) + 1; month { //era、year、month变量都处于作用域之内
	case 2:
		day := rand.Intn(28) + 1 //era、year、month、day变量都处于作用域之内
		fmt.Println(era, year, month, day)
	case 4, 6, 9, 11:
		day := rand.Intn(30) + 1 //era、year、month变量都处于作用域之内,这个day变量和第一个day变量不在同一个作用域
		fmt.Println(era, year, month, day)
	default:
		day := rand.Intn(31) + 1 //era、year、month变量都处于作用域之内,这个day变量和第一个day变量不在同一个作用域
		fmt.Println(era, year, month, day)
	} //month 和day变量不在处于作用域中
} // year变量不在处于作用域中

标签:count,变量,lesson4,作用域,趣学,month,era,Go,day
来源: https://www.cnblogs.com/walker1024/p/14153154.html