zoukankan      html  css  js  c++  java
  • Go语言中的打包和工具链

    所有Go语言的程序都会组织成若干组文件,每组文件被称为一个包。这样每个包的代码都可以作为很小的复用单元,被其他项目引用。

    包名惯例

    给包命名的惯例是使用包所在目录的名字。并不需要所有包的名字都与别的包不同,因为导入包时是使用全路径的,所以可以区分同名的不同包。

    main包

    Go语言的编译程序会试图把这种名字的包编译为二进制可执行文件。所有用Go语言编译的可执行程序都必须有一个名为main的包。


    命令和包 Go文档里经常使用命令(command)这个词来指代可执行程序,如命令行应用程序。这会让新手在阅读文档时产生困惑。记住,在Go语言里,命令是指任何可执行程序。作为对比,包更常用来指语义上可导入的功能单元。


    导入

    import语句告诉编译器到磁盘的哪里去找想要导入的包。导入包需要使用关键字import,它会告诉编译器你想引用该位置的包内的代码。如果需要导入多个包,习惯上是将import语句包装在一个导入块中:

    import (
    	"fmt"
    	"net/http"
    	"github.com/PuerkitoBio/goquery"
    	"strconv"
    )
    

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

    远程导入

    目前的大趋势是,使用分布式版本控制系统(DVCS)来分析代码,如GitHub。Go语言的工具链本身就支持从这些网站及类似网站获取源代码。Go工具链会使用导入路径确定需要获取的代码在网络的什么地方。
    例如:

    import "github.com/PuerkitoBio/goquery"
    

    如果路径包含URL,可以使用Go工具链从DVCS获取包,并把包的源代码保存在GOPATH指向的路径里与URL匹配的目录里。这个获取过程使用go get命令完成。go get将获取任意指定的URL的包,或者一个已经导入的包所依赖的其他包。

    命名导入

    崇明的包可以通过命名导入来导入。命名导入时指,在import语句给出的包路径的左侧定义一个名字,将导入的包命名为新名字。
    例如:

    package main
    
    import {
        "fmt"
        myfmt "mylib/fmt"
    }
    
    func main(){
        fmt.Println("Standard Library")
        myfmt.Println("mylib/fmt")
    }
    

    当你导入了一个不在代码里使用的包时,Go编译器会编译失败,并输出一个错误。
    有时,用户可能需要导入一个包,但是不需要引用这个包的标识符。在这种情况下,可以使用空白标识符_来重命名这个导入。


    空白标识符 下划线字符(_)在Go语言里称为空白标识符,有很多用法。这个标识符用来抛弃不想继续使用的值,如给导入的包赋予一个空名字,或者忽略函数返回的你不感兴趣的值。


    函数init

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

    使用Go的工具

    go

    go build编译程序。
    go clean删除编译生成的可执行文件。
    go run会先构建.go文件里包含的程序,然后执行构建后的程序。

    进一步介绍Go开发工具

    go vet

    vet命令会帮开发人员检测代码的常见错误。

    Go代码格式化

    fmt命令自动格式化开发人员指定的源代码文件并保存。

    Go语言的文档

    go doc

  • 相关阅读:
    jQuery 点击超链接生成一个的页面,点击几次,生成几个新页面
    Zookeeper基本信息
    性能测试基础
    Java安装及基础01
    手机抓包手册
    在linux环境下部署禅道环境
    Linux基础命令2
    Linux基础命令1
    SQL SERVER 基本操作语句
    MYSQL多表查询
  • 原文地址:https://www.cnblogs.com/Tu9oh0st/p/10891686.html
Copyright © 2011-2022 走看看