打开Shell窗口或Windows下的命令行窗口,切换到$GOPATH\src文件夹。

1
2
3
4
cd $GOPATH
mkdir -p github.com/devuser/golang-notes/golang-step-1/helloworld
touch github.com/devuser/golang-notes/golang-step-1/helloworld/main.go
cd github.com/devuser/golang-notes/golang-step-1/helloworld

如果在Windows下需要将$GOPATH修改成%GOPATH%
上述mkdir -p也要查询如何之后做调整。
touch用来创建一个空文件,如果在Windows下可以输入nodepad打开一个空文件。

复制如下代码到main.go

1
2
3
4
5
6
7
8
9
10
package main

import (
"fmt"
)

func main() {

fmt.Println("Hello world!")
}

保存。

使用build命令

回到Shell窗口或Windows下的命令行窗口。
输入命令

1
go run main.go

看到输出结果

1
Hello world!

如果要编译成可执行文件

1
2
3
go build -o helloworld main.go
chmod +x helloworld
./helloworld

或Windows下

1
2
go build -o helloworld.exe main.go
.\helloworld.exe

使用上述命令可以编译产生可以执行文件。

当然您可以把可执行文件保存在$GOPATH/bin目录

1
2
3
go build -o $GOPATH/bin/helloworld main.go
chmod +x $GOPATH/bin/helloworld
$GOPATH/bin/helloworld

建议

建议在环境变量中修改,把$GOPATH/bin添加到$PATH

1
$PATH=$GOPATH/bin:$PATH

go run 使用

  • go run [fileName].go 用于执行go的源代码 如go run helloworld.go
  • go run [fileName].go -argK=argV 带参数[argK]执行go的源代码

笔者常用的命令方式

1
go run XXX.go -ini=XXX.json -log=XXX.log

go run 常用标记

  • -a:强制编译相关代码,无论是否编译过
  • -v:列出被编译的代码包的名称
  • -a -v:列出所有被编译的代码包的名称
  • -p n:并行编译,其中n为并行的数量 如-p 2
  • -n:打印编译过程中所需运行的命令,但并不执行这些命令
  • -x:打印编译过程中所需运行的命令,并执行这些命令
  • -work:显示编译时创建的临时工作目录的路径,并且不删除这个临时工作目录

使用方式:如 go run -v [fileName].go

@TODO: 暂时没找到指定临时工作目录的方法。