美文网首页
go语言基础之作用域和包

go语言基础之作用域和包

作者: Fizz翊 | 来源:发表于2018-11-19 14:37 被阅读9次

欢迎来我的个人博客:fizzyi

1 作用域

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

1.1局部变量

在函数体内声明的变量,参数和返回值变量就是局部变量,作用域在函数内部。

1.2全局变量

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

1.3不同作用域同名变量

在不同作用域可以声明同名的变量,起访问原则为:在同一个作用域内,就近原则访问最近的变量

如果此作用域没有此变量声明,则访问全局变量,如果全局变量也没有,则报错。

2 包

所有Go语言的程序都会组织成若干组文件,每组文件被称为包,这样每个包的代码都可以作为很小的复用单元,被其他项目引用。

一个包的源代码保存在一个或多个以.go为文件后缀名的源文件中,通常一个包所在的目录路径的后缀是包的导入路径。

2.1自定义包

对于较大的应用程序,我们应该根据功能的不同将源代码分成不同的包。

在Go语言中,代码中的源码文件名可以是任意的,但是这些任意名称的源码文件都必须以包声明语句作为文件中的第一行,每个包都对应一个独立的名字空间。

包中成员以名称首字母大小决定访问权限。

  • 首字母大写,可被包外访问。
  • 首字母小写,仅包内成员可以访问。

2.2 main函数和init函数

Go里面有两个保留的函数:init函数(能够应用于所有的package)和main函数(只能应用于package main)。这两个函数在定义石不能有任何的参数和返回值。

Go程序会自动调用init()和main().

图解:

屏幕快照 2018-11-19 14.21.48.png

2.3 别名操作

在导入时,可指定包成员访问方式,比如对包重命名,以避免同名冲突

import (
    io "fmt" //fmt改为io
)
func main(){
    io.Println(" hello ") //通过别名io调用  
}

2.4 _操作

有时,需要导入一个包,但是不需要使用里面的函数,而是调用该包里面的init函数。

import (
    _ "fmt"
)

相关文章

  • go语言基础之作用域和包

    欢迎来我的个人博客:fizzyi 1 作用域 作用域为以声明标识符所表示的常量,类型,变量,函数或包在源代码中的作...

  • Go语言里面的变量作用域问题

    变量的作用域,通常有包package范围、函数func范围、或者闭包closure范围, go语言毕竟比C语言复杂...

  • Go程序设计

    基础部分 Go基础结构的综述,完成十几个日常任务 Go程序的组成元素(声明、变量、新类型、包和文件以及作用域) 讨...

  • 闭包(closure)

    ● 闭包基础 ● 闭包作用 ● 闭包经典例子 ● 闭包应用 ● 闭包缺点 ● 参考资料 1、闭包基础 作用域和作...

  • Go语言探索 - 8(原创)

    Go语言基础系列博客用到的所有示例代码 在上一篇文章主要学习了Go 语言变量以及变量的作用域。本篇文章主要学习的是...

  • Javascript技术栈梳理

    javascript语言: 基础知识 对象 原型, 原型链继承 闭包, 作用域 数组 函数 类和模块 正则表达式 ...

  • 作用域和闭包

    目录 概述 作用域编译过程词法作用域全局作用域函数作用域 闭包循环和闭包闭包的用途性能 总结 概述 作用域和闭包一...

  • 《Web前端开发之JavaScript精英课堂》(六)

    对 作用域、作用域链、执行上下文对象(GO | AO)、闭包 的个人理解: JS分为全局和局部作用域,都属于词法作...

  • Go语言之包和文件

    在Go语言中,包的作用和其他语言的库或者模块类似,Go语言的包我感觉类似于IDEA里面的module,就是可以互相...

  • Go 语言基础--函数&作用域

    访问标示 go变量通常会出现在函数内部(局部变量,只出现在函数体内,只能够在函数内部使用),函数外变量(全局变量,...

网友评论

      本文标题:go语言基础之作用域和包

      本文链接:https://www.haomeiwen.com/subject/hwtafqtx.html