项目结构

Go语言规定了默认的项目目录结构,$GOROOT及$GOPATH中都使用如下路径:

bin/  编译后的可执行文件
src/  项目源码
pkg/  保存编译后的库

代码可以放在多个文件中进行组织,与文件名没有关系,文件名可以被任意修改而不影响代码,Go是使用路径导入和通过包名来引用的,只要同一个目录中的package名一样就行。

package和import

Go程序是由package构成的,主程序从package main开始运行,使用import path来导入package,其中path是package文件的目录路径,import默认从$GOROOT和$GOPATH中搜索。

package main

import (
    "fmt"
    "math/rand"
)

function main() {
    fmt.Println("产生一个随机数:", rand.Int())
}

包名与代码路径没有直接关系,一般情况下package名称与导入路径的最后一级目录名字相同(当然也可以不同,但是同一个文件夹中的package名称要一样)。

别名

也可以在导入时给package起个别名,然后使用别名来操作。

package main

import (
    f "fmt"
)

func main() {
    f.Println("使用了包别名。")
}

.操作

导入后不需要使用包前缀

import (
    . "fmt"
)

func main() {
    Println("...")
}

_操作

import (
    "fmt"
    _ "github.com/go-sql-driver/mysql"
)

代码发布和共享

使用go get获取远程代码

如果远程代码符合go get规则,go get命令将会从代码仓库直接获取代码,并且进行编译和安装,它内置了对于github、googlecode、bitbucket及launchpad的支持;

go get github.com/astaxie/beego

完成后就可以在代码中进行import了

import (
    "github.com/astaxie/beego"
)

注意:如果要使用go get可以访问的方式发布软件,则要遵守相应的规则,也就是,如果你的软件有多个包,包之间的import也要遵守这种URL方式的路径规则。

建议将第三方库放在独立的GOPATH目录中,与项目目录分开。

建立符合go get的项目

符合go get的项目对于代码托管地址有关,地址不能变更,地址的变更的同时也要对引入路径进行变更(当然你可以不使用go get,而是直接clone代码后,按照引入路径人工建立各级目录)。

Step1: 在远程代码仓库建立项目,路径如下:

https://github.com/xglabc/webpick

Step2:从代码仓库获取代码到本地

需要在项目的GOPATH中执行,代码会被放到GOPATH中。

go get github.com/xglabc/webpick

完成后就可以在“项目目录”\src\github.com\xglabc\webpick中编写代码了,导入路径如下:

import (
    "github.com/xglabc/webpick"
)

建立传统型项目

获取代码

git clone inford.ink/xglabc/webpick

传统型项目结构对于代码托管地址没有关系,项目中可以包含完整的路径结构,可以直接将项目路径加入GOPATH中

src/
    xglabc/
            webpick/
            main.go
bin
pkg

导入

import (
    "xglabc/webpick"
)

[ 编辑 | 历史 ]
最近由“jilili”在“2019-07-27 13:52:44”修改