码迷,mamicode.com
首页 > 其他好文 > 详细

代码块、作用域

时间:2020-08-26 18:49:34      阅读:46      评论:0      收藏:0      [点我收藏+]

标签:port   class   package   访问   代码块   就是   ack   声明   中间   

程序实体的访问权限有三种:包级私有的、模块级私有的和公开的

代码块的作用就是限制了程序实体的作用域。

例子1:

package main

import "fmt"

var name = "sixinshuier"

func main() {
	name := "in main"
	{
		name := "in block"
		fmt.Println(name)
	}
	fmt.Println(name)
}

运行结果:

D:\GoWorkspace\src\polaris\main>go run test1.go
in block
in main

例子2:

package main

import "fmt"

var name = "sixinshuier"

func main() {
	//name := "in main"
	{
		name := "in block"
		fmt.Println(name)
	}
	fmt.Println(name)
}

运行结果:

D:\GoWorkspace\src\polaris\main>go run test1.go
in block
sixinshuier

结论:

1、代码块中变量的查找,首先会找当前代码块,依次向上找,找不到就报错

import .

如果我们把代码包导入语句写成import . "XXX"的形式(注意中间的那个“.”),那么就会让这个“XXX”包中公开的程序实体,被当前源码文件中的代码,视为当前代码包中的程序实体。

重名变量、变量重声明

重名变量:就是对变量的重命名

变量重声明:变量重声明是对同一个变量的多次声明,这里的变量只有一个

代码块、作用域

标签:port   class   package   访问   代码块   就是   ack   声明   中间   

原文地址:https://www.cnblogs.com/shix0909/p/13540709.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!