成都网站建设设计

将想法与焦点和您一起共享

Go中的工程管理-创新互联

一、工作区:

从网站建设到定制行业解决方案,为提供成都网站制作、成都网站建设服务体系,各种行业企业客户提供网站建设解决方案,助力业务快速发展。创新互联将不断加快创新步伐,提供优质的建站服务。

其实就是一个对应于特定工程的目录,它应包含3个子目录:src目录、pkg目录和bin目录。

l src目录:用于以代码包的形式组织并保存Go源码文件。(比如:.go .c .h .s等)

l pkg目录:用于存放经由go install命令构建安装后的代码包(包含Go库源码文件)的“.a”归档文件。

l bin目录:与pkg目录类似,在通过go install命令完成安装后,保存由Go命令源码文件生成的可执行文件。

若环境变量GOPATH中包含多个工作区的目录路径,像这样执行go install命令就会失效,此时必须设置环境变量GOBIN。

二、包:

我们创建的的自定义包最好放在GOPATH的src目录下(或者GOPATH src的某个子目录)。

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

package calc

包中成员以名称⾸字母⼤⼩写决定访问权限:

l public: ⾸字母⼤写,可被包外访问

l private: ⾸字母⼩写,仅包内成员可以访问

注意:同一个目录下不能定义不同的package。

三、main包。

init函数(能够应用于所有的package),建议用户在一个package中每个文件只写一个init函数

main函数(只能应用于package main),但package main就必须包含一个main函数.

执行顺序

1)每个包可以包含任意多个 init 函数,这些函数都会在程序执行开始的时候被调用。所有被编译器发现的 init 函数都会安排在 main 函数之前执行。init 函数用在设置包、初始化变量或者其他要在程序运行前优先完成的引导工作。

2)程序的初始化和执行都起始于main包。如果main包还导入了其它的包,那么就会在编译时将它们依次导入。

3)有时一个包会被多个包同时导入,那么它只会被导入一次(例如很多包可能都会用到fmt包,但它只会被导入一次,因为没有必要导入多次)。

4)当一个包被导入时,如果该包还导入了其它的包,那么会先将其它包导入进来,然后再对这些包中的包级常量和变量进行初始化,接着执行init函数(如果有的话),依次类推。

5)等所有被导入的包都加载完毕了,就会开始对main包中的包级常量和变量进行初始化,然后执行main包中的init函数(如果存在的话),最后执行main函数。

Go中的工程管理

四,导入包使用关键字import。

一)、import可以是相对路径,也可以是绝对路径。

//方法1

import "fmt"

import "net"

//方法2

import (

    "fmt"


    "net"

)

二)、包的查找路径。

 1)标准库中的包会在安装 Go 的位置找到; 2) Go开发者创建的包会在GOPATH环境变量指定目录里查找。

 3)如果编译器查遍 GOPATH 也没有找到要导入的包,那么在试图对程序执行 run 或者 build

 的时候就会出错。

三)点操作,别名操作和_操作。

1)点操作:

import (

  //这个点操作的含义是这个包导入之后在你调用这个包的函数时,可以省略前缀的包名


    . "fmt"


)


func main(){

    Println("Hello go!")

}

2)别名操作

import (

    io "fmt" //fmt改为io

)

func main(){

    io.Println("hello go") //通过io别名调用

}

3)_操作

import (

    _"fmt"

_操作其实是引入改包,而不直接使用包里面的函数, 而是调用了该包里面的init函数。






另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


名称栏目:Go中的工程管理-创新互联
文章位置:http://chengdu.cdxwcx.cn/article/gchcg.html