zoukankan      html  css  js  c++  java
  • 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会先被运行。

  • 相关阅读:
    Thinkphp下实现D函数用于实例化Model格式
    Thinkphp3.2下导入所需的类库 同java的Import 本函数有缓存功能
    Thinkphp下记录和统计时间(微秒)和内存使用情况
    python打造seo必备工具-自动查询排名
    Python爬虫爬企查查数据
    解决Android8.0系统应用打开webView报错
    团队冲刺第七天个人博客
    团队冲刺第六天个人博客
    团队冲刺第五天个人博客
    团队冲刺第四天个人博客
  • 原文地址:https://www.cnblogs.com/hatsusakana/p/9810449.html
Copyright © 2011-2022 走看看