Go中的工程管理

一、工作区:

创新互联建站是一家专业提供南阳企业网站建设,专注与成都网站设计、做网站H5开发、小程序制作等业务。10年已为南阳众多企业、政府机构等服务。创新互联专业网站设计公司优惠进行中。

其实就是一个对应于特定工程的目录,它应包含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函数。







分享文章:Go中的工程管理
转载来于:http://pwwzsj.com/article/pjijsc.html