zoukankan      html  css  js  c++  java
  • 【Golang学习笔记】入门:环境变量与Package

    Golang入门学习

    环境变量

    Golang的环境变量有GOROOT和GOPATH

    GOROOT

    GOROOT是Golang的安装路径,以mac为例,通过Homebrew安装好的Golang之后,可以配置局部环境变量。

    export GOROOT=/usr/local/go
    

    GOPATH

    GOPATH是作为编译后二进制的存放目的地和import包时的搜索路径,也就是自己创建Golang项目的工作目录。GOPATH是go命令常常需要用到的,如go run,go install, go get等执行的目标路径,这些命令所操作的目录,就是GOPATH。
    GOPATH之下主要包含三个目录:

    .(GOPATH)
    ├── bin
    │   └── initdb
    ├── pkg
    │   └── darwin_amd64
    └── src
        ├── README.md
        ├── code
        ├── conf
        ├── github.com
        ├── go.opentelemetry.io
        ├── golang.org
        ├── google.golang.org
        ├── gopkg.in
        ├── gpool
        ├── httpserver
        ├── initdb.go
        ├── install.sh
        ├── logs
        ├── proto
        ├── rpcclient
        ├── tcpserver
        └── utils
    

    bin目录主要存放可执行文件; pkg目录存放编译好的中间库文件,主要是*.a文件; src目录下主要存放go的源文件(如.go .c .h .s等)。
    在开发过程中,如果需要引用到其他的项目,使用import "github.com/jinzhu/gorm",将会引用到$GOPATH/src/github.com/jinzhu/gorm这个项目。go get命令所对应的效果就是给所选择的项目引入远程的包,可以理解为引入依赖。
    以某个项目为例,其结构如下
    而对于某个项目中,若有package main,则这个go文件是主文件,将会被编译运行。

    全局GOPATH与项目GOPATH

    应该为每个项目都设置一个单独的GOPATH,这样项目在引用包的时候,会首先在GOROOT/src中寻找,例如fmt输入输出包,当无法找到的时候,会寻找PROJECT GOPATH/src,如果还是无法找到,将会寻找GLOBAL GOPATH/src,这样一来,我们就可以将一些通用的包放入全局目录中,其余的自行定义。既保证了项目文件的整洁,也保证了编译的正确性。

    使用go env命令可以查看GOROOT和全局GOPATH:

    $ go env
    ...
    GOPATH="/Users/jinchenglv/go"
    GOROOT="/usr/local/go"
    ...
    

    创建项目

    mkdir gotest
    cd gotest
    touch hello.go
    

    hello.go中编辑:

    package main
    import "fmt"
    func main() {
          fmt.Println("Hello, 世界!")
    }
    

    有两种方式执行:

    1. 在项目根目录下执行go build构建项目,会生成一个hello文件;运行生成的./hello,终端打印出Hello, 世界!
    2. 直接运行命令go run hello.go来执行程序

    Golang的包Package

    与Python、Java等语言不同,在Golang中,import导入的是目录,而不是包名。而且,Golang没有强制要求包名和目录名需要一致。这一部分的介绍可以参考[Go] 路径、目录名、包名、文件名
    Golang中使用import引入其他的包。编译器导包的顺序如下:
    GOROOT->项目所对应的GOPATH->全局GOPATH
    如果都无法找到,编译器将会报错。



    Reference

    1. go环境变量配置 (GOROOT和GOPATH).https://www.jianshu.com/p/4e699ff478a5
    2. Golang入门(1):安装与配置环境变量的意义.https://juejin.im/post/5e899860518825737d49cdc6
  • 相关阅读:
    Linux开发初探
    Linux开发初探
    电脑使用说明书
    电脑使用说明书
    Delegates, Events, and Anonymous Methods 委托、事件与匿名方法
    CSS haslayout
    js与flash结合使用
    sgen.exe" exited with code 1.解决方法
    selenium
    selenium支付高版本的FireFox
  • 原文地址:https://www.cnblogs.com/lvjincheng/p/13384738.html
Copyright © 2011-2022 走看看