• 6. 工作区域与包


    其实准备之后再研究包这个东西的,但是对于Go语言包是管理源码的方式,还是仔细了解一下吧。

    之前几章的代码都是在一个go文件中测试运行的,但是实际项目肯定不止一个文件,使用包可以使Go程序更加容易维护。

    package xxx 这行代码表示此文件属于哪一个包,一般放在第一行。

    如果使用package main则表示,此文件会生成可执行文件,且必须有main函数,否则:function main is undeclared in the main package。

    【工作区】

     Go安装完毕后,GOPATH会出现在环境变量中(以windows为例),可以添加自己的工作区域。

    【创建包】

    假设工作区的路径是: D:go_workspacego,我们手动新建一个包,那么包的目录结构如下:

    src
        hello
            hello.go
    
    bin
        hello.exe

    其中bin目录是会自动生成的,包构建完毕后,我们在hello.go中放入Hello Go!测试代码。 输入 go install hello, 这是使用install编译,而且不需要切换到源码路径下。

    如果编译成功,那么bin目录会自动生成,hello.exe也会在bin目录下。

    【调用其他包】

    再创建一个function包,新建string.go,目录结构如下:

    src
        hello
            hello.go
        function
            string.go
    
    bin
        hello.exe
    

    hello.go代码

    package main 
    
    import (
        "fmt"
        "function"
    )
    
    func main() {  
        fmt.Println(function.Lower("ABC"))
        fmt.Println(function.Upper("ABC"))
    }

    string.go代码

    package function 
    
    import "strings"
    
    func Lower(str string) string {
        return strings.ToLower(str)
    }
    
    func Upper(str string) string {
        return strings.ToUpper(str)
    }

    输入 go install hello,go语言会自动在工作区下搜索包function并自动编译。

    这里要注意:导出的函数首字母必须大写。

    【init函数】

    每个包的每个go文件都可以有一个 init 函数,用于初始化,会按照编译的顺序运行。

    每个init只会运行一次,如果一个包调用了另一个包,那么被调用的包的init会先被运行。

  • 相关阅读:
    基于百度ueditor的富文本编辑器
    IE 跨域后COOKIE无法更新
    C笔记
    KOHANA3.3 ORM中文详解
    ReflectionClass getDocComment 返回false
    C中的栈区&堆区
    通过GMAP得到坐标对应地址
    准备学习Flex,记录下开始时间。
    法律援助网站!http://www.qinquan.org
    博客园也有刷新提交的问题?
  • 原文地址:https://www.cnblogs.com/hatsusakana/p/9810449.html
Copyright © 2020-2023  润新知