Go是一门`支持并发`、`垃圾回收`的编译型系统编程语言,诣在创造一门
具有在静态编译语言的`高性能`和动态语言的高效开发之间拥有良好平衡点的一门编程语言
Go语言特点
- 类型安全和内存安全
- 以非常直观和极低代价的方案实现高并发
- 高效的垃圾回收机制
- 快速编译(同时解决C语言中头文件太多问题)
- 为多核计算机提供性能提升的方案
- UTF-8编码支持
安装Go语言
由于无法访问Google,可以通过国内链接下载
Mac用户可以通过`brew install go`进行安装。
安装后需要配置环境变量
brew方式安装在/usr/local/opt/go/libexec目录下
export GOPATH=$HOME/go # 需要在用户家目录创建一个名为go的目录,到时候你可以在该目录下编写Go程序,可以自定义路径,然后该变量指定为自定义路径
export GOROOT=/usr/local/opt/go/libexec # 指定go软件包目录
export PATH=$GOROOT/bin:$GOPATH/bin:$PATH # 输出go命令为全局模式,方便调用
可以将上述三行写在`~/.bashrc`文件或全局环境变量文件`/etc/profile`
根据约定GOPATH需要创建3个目录:
- bin 存放编译后生成的可执行文件
- pkg 存放编译后生成的包文件
- src 存放项目源码
Go命令介绍
通过命令行输入后即可查看所有支持的命令参数
- go get: 获取远程包 (如果是github源则需要提前安装git工具,google项目源则需要安装hg工具)
- go run: 直接运行程序
- go build: 测试编译,检查是否有编译错误
- go fmt: 格式化源码(部分IDE会自动调用)
- go install: 编译包文件并编译整个程序
- go test: 运行以*_test.go结尾的测试文件
- go doc: 查看文档,通过 godoc -http=:8000则可开启本地一个在线文档服务http://127.0.0.1:8000方式即可打开。与官方网站文档一摸一样
Go Hello world!
// 单行注释
/*
多
行
注释
*/
// 当定义的为入口文件时,则该包名为main,否则可自定义取一个有意义的合法标识符名称
// 这样别人在导入你定义的模块时,可以使用该名称,如下面的fmt
package main
// 导入内置包
import "fmt"
/*
也可以一次性导入多个包,类似python从一个模块导入多个方法
import (
"fmt"
"os"
)
注意每个包之间是以换行作为分割,不需要使用逗号
导入时可以定义别名
如把fmt改为类型C头文件stdio.h
import stdio "fmt"
使用时,比如下面的打印方法就变成
stdio.Println("Hello world!")
也可以不使用stdio,直接调用Println,这种方式以这种方式导入
import . "fmt"
然后就可以直接调用fmt里面的方法
Println("Hello world!")
这种方法尽量不要使用,避免方法被覆盖,应该显示的调用
*/
// 程序入口为main函数,必须为main才能执行
func main(){
fmt.Println("Hello world!") // Println表示打印后自动换行
}
关于方法输出
- Go没有显示的private或public关键字用于定义共享或私有方法和属性,它是通过标识符来界定的。
- 标识符首字母大写,则可以被其它包导入时调用,如果首字母小写,则其它包导入该包时,则不能使用该名称定义的
变量或方法