Go基础
   
    1、安装【基于Windows】
   
    建议下载.msi文件,安装时默认安装在C:\Go\文件夹下(go1.10版本)。
    
    安装完毕后会自动在系统环境变量的Path中写入C:\Go\bin,并帮我们建立了一个GOROOT的变量,值为C:\Go\。
   
    然后我们打开黑窗口(cmd,命令行)输入:
    
     go version
    
    ,出现相应的go的版本则说明安装配置成功。
    
     
   
    2、路径
   
我开发工具使用的是GoLand,开发前还需要进行下简单配置,打开GoLand在File->Settings->Go中可以看到我们需要进行GOROOT和GOPATH的配置:
    GOROOT
   
    就是go的安装路径了,C:\Go,如下图:
    
     
   
    GOPATH
   
    这个暂时我们设置为我们go工程的目录,比如我们的go工程为D:\Works_Go\Gogogo,那么如下图:
    
    
    
    在这个工程目录中我们一般有三个文件夹:
   
    src:该文件夹主要来存放我们的代码源文件,需手动创建。
    
    bin:该文件夹一般会存放编译后生成的 .exe 文件,无需手动创建。(如果将该文件写入到系统变量的Path中,
    
    那么在编译完后对于生成的xxx.exe的文件我们可以直接在黑窗口中敲入xxx去执行,这个bin目录也可以称为
    
     GOBIN
    
    目录)
    
    pkg:该文件夹一般会存放编译后生成的 .a 文件,无需手动创建。
   
    【注意:GOPATH目录是Go项目的根目录,一个Go项目可以包含多个应用。如果你是做安卓开发的(我是),这一点要区分下,一个安卓项目一般包含一个应用,
    
    但可以有多个模块。当然你也可以设置多个GOPATH来对应多个Go项目,不过貌似做多个GOPATH的话后面开发会有不方便】
   
    GOBIN
   
go install命令执行后编译结果存放的路径,见GOPATH中的bin目录。
    3、命令
   
    这里以我的工程讲解命令,代码文件很简单,工程结构如下图所示:
    
    
    
    bin、pkg目录已经说过了,里面没有内容。doc是我写文档的文件夹。src是源代码文件夹(src下的others文件夹我们不去管它,那是我练习时写的代码,跟教程无关)。
   
say.go中的源码如下:
package utils
import "fmt"
func SayHello() {
    fmt.Println("Hello !")
}
func SayHi() {
    fmt.Println("Hi !")
}
sayHello.go中源码如下:
package main
import "myApp/utils"
func main() {
    utils.SayHello()
}
    go run
   
    
     运行命令源码文件
    
    
    Go源码文件包括:命令源码文件、库源码文件和测试源码文件。命令源码文件属于main包且文件中有main()函数。
    
    命令后跟完整文件名,在编辑器底部打开Terminal进入控制台并输入如下命令
    
    
     go run src/myApp/sayHello.go
    
    ,编译完后便会输出相应的内容。如下图所示:
    
    
    
    因为我们在项目的根目录下,所以当编译的sayHello.go文件的时候需要写出他的路径。
   
    go build
   
    
     编译并安装自身包和依赖包
    
   
    命令后跟完整文件名,在编辑器底部打开Terminal进入控制台并输入如下命令
    
    
     go build src/myApp/sayHello.go
    
    ,编译完毕后在项目的根目录下会出现一个sayHello.exe的文件。
   
    命令后跟目录名,例如在控制台输入
    
    
     go build myApp
    
    ,编译完毕后在项目的根目录会出现myApp.exe文件。
   
    go install
   
    
     安装自身包和依赖包
    
   
    命令后跟目录名,例如在控制台输入
    
    
     go install myApp
    
    ,编译完毕后会在项目的bin文件夹下生成一个main.exe文件。
    
    然后我们直接在控制台输入
    
    
     myApp
    
    ,那么控制台会直接输出我们打印的结果(如果不能成功请检查是否将该bin目录添加到了系统变量Path中),如下图所示:
   
     
   
    例如在控制台输入
    
    
     go install myApp/utils
    
    ,编译完毕后会在项目的pkg文件夹中生成utils.a文件(注:bin目录下的myApp.exe文件是上一步运行go build myApp命令产生的),示例如下:
   
     
   
    
     区别在哪里呢?
    
    myApp下包含一个有main包以及main函数的sayHello.go主文件。而utils文件夹下只是库文件。
   
 
