Go语言是什么
这可以忽略了,百科写的更清楚,传送门。但是为什么要学这一门语言呢?因为它很萌么难道?不过固然每一门语言都有其优势与特点,那么go的又是什么呢?
诞生
2006年1月2日下午15点4分5秒
// 这个时间有意义
发展
2017年1.9版本
2017年排名进入前20
看看第一个程序heoolworld
毕竟说来说去,还是看看helloworld更直接
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
package main
就是一个包的声明,go语言的package可以由多个文件构成,只要他们都在声明相同的包名就好。
import "fmt"
是导入了一个fmt包,import在这里其实有点类似c的include的意思。fmt
可以简单的认为是一个标准输入输出的包。
import其实有多种用法,还可以用"github.com/balabala"
这样来导入某路径下的包,这里是一个包所在的文件夹的名字而不是包的名字
亦或者import f "fmt"
这样给导入的包一个新的别称,可以简化你的调用
甚至可以用 import . "fmt"
,这样就根本不用在调用fmt内的函数等时候写任何前缀,比如fmt.Printf()就只要写Printf()就好了。
func main()
main函数仍然是程序的入口。也就是一般称之为入口函数的存在。一个包不能有两个main函数,同样main包里面也不能没有main函数。
这样之后我们就可以编译运行了。
命令
go语言是一个编译型的语言,也就是不能像脚本语言那样直接运行,但是编译型的语言好处是编译之后的可执行文件性能好。
go build hello
go run hello.go
// or
go build github.com\weirdsnap\hello
go run github.com\weirdsnap\Blog\main.go
build命令是编译,编译的最小单位是包,所以只要指定到包所在的文件夹即可,还可以-o选项。
run命令是编译运行,但是他的编译结果是放在临时文件里,所以只适合快速测试,并不适合生成。
其他常用命令:
go env
显示相关环境变量
go test
进行测试
go fmt
格式化文件,go语言推荐按照规范格式化代码,使用统一的代码风格
语言特性
垃圾回收
- 自动回收,不需要开发人员处理,失去了最后的引用的变量将会被销毁
- 降低编码人员工作
支持并发
- go 操作
- goroutine 用户级线程
多返回值
- 函数的返回值不止一个可以