美文网首页
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语言基础之作用域和包

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