Go(又称 Golang)是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 开发的一种静态强类型、编译型语言。Go 语言语法与 C 相近,但功能上有:内存安全,GC(垃圾回收),结构形态及 CSP-style 并发计算。
1.go run
类似 一个脚本 : 编译 + 执行 一起做了,所以你可以直接查看结果,这也是 你写demo 或者 网上视频老师讲课 愿意使用的命令,但是你能明显 看出来 go run 命令会很慢(因为有编译的过程)
1.使用go run 输出Hello world !!!
package main // 定义的包名为main
import "fmt" // 导入模块为'fmt'模块
func main() // 输入输出的开始
{ fmt.Println("Hello Go language!!!")
fmt.Print(" I'm coming\n")
Y :="xixi" //也可以传参输出
fmt.Print(Y)
} //Println 和 Print的区别是println自动成一行,Print则需要通过'\n'
编译结果:
[root@localhost ~]#go run main.go
Hello Go language!!!
I'm coming
xixi
注意:Go语言中出现调用却未使用则会报错,所以可以灵活使用下划线,下划线在代码中起到忽略这个变量的作用.
2.go build
Go语言中使用 go build 命令主要用于编译代码。在包的编译过程中,若有必要,会同时编译与之相关联的包。
首先我创建了a1.go 和b1.go两个文件
package main
import "fmt"
func main()
{ pkgfunc()
fmt.Println("I'm a1.go")
}
package main
import "fmt"
func pkgfunc()
{ fmt.Println("I'm b1.go")
}
然后通过命令 go bulid a1.go b1.go 编译生成一个可执行文件,通过./可执行文件名即可运行
[root@localhost ~]# go build a1.go b1.go
[root@localhost ~]# ./a1
I'm b1.go
I'm a1.go
3.go install
基本上 go install @ 是用于命令的全局安装.
个人理解: 命令go install用于编译并安装指定的代码包及它们的包。当指定的代码包还没有被编译和安装时,该命令会先去处理生产的包。与go build命令一样,传给go install命令的代码包参数应该以导入路径的形式提供。并且,go build命令的绝大多数标记也都可以用于go install命令。实际上,go install命令只比go build命令多做了一件事,即:安装编译后的结果文件到指定目录。
go install 的编译过程有如下规律:
- go install 是建立在 GOPATH 上的,无法在独立的目录里使用 go install。
- GOPATH 下的 bin 目录放置的是使用 go install 生成的可执行文件,可执行文件的名称来自于编译时的包名。
- go install 输出目录始终为 GOPATH 下的 bin 目录,无法使用-o附加参数进行自定义。
- GOPATH 下的 pkg 目录放置的是编译期间的中间文件。
----待完善