概述
Go 语言特色
- 简洁、快速、安全
- 并行、有趣、开源
- 内存管理、数组安全、编译迅速
应用
Go 语言被设计成一门应用于搭载 Web 服务器,存储集群或类似用途的巨型中央服务器的系统编程语言。
对于高性能分布式系统领域而言,Go 语言无疑比大多数其它语言有着更高的开发效率。它提供了海量并行的支持,这对于游戏服务端的开发而言是再好不过了。
Go 语言最主要的特性
- 自动垃圾回收
- 更丰富的内置类型
- 函数多返回值
- 错误处理
- 匿名函数和闭包
- 类型和接口
- 并发编程
- 反射
- 语言交互性
mac os安装与环境配置
安装步骤:
首先下载安装包(go1.11.darwin-amd64.pkg)。
双击已下载的安装包,按照提示安装Go。
在Mac上的安装路径是:/usr/local/go
。可以通过
Contrl+shift+G
输入/usr/local/go
进入这个路径。
将安装目录加入到环境变量,命令如下:
1
export PATH=$PATH:/usr/local/go/bin
通过上面的步骤就完成了Go的安装。Go语言常用的编辑器是Goland。
环境配置
完成安装后,接下来是配置mac下的环境变量。这是最关键的。环境配置步骤如下:
打开终端(Terminal),敲入一下代码:
1
2
3
4
5cd ~ #进入当前用户下的根目录
ls -a # -a可将隐藏文件显示,可能会看到.bash_profile文件,若没有就自己创建
vim .bash_profile #创建很简单进入vim后,按下a才能编辑,输入一下代码:
1
2
3
4
5export GOROOT=/usr/local/go
export PATH=/usr/local/go/bin:$PATH
export GOPATH=go代码默认存放路径解释一下含义:
GOROOT就是pkg包默认安装到的地方,从官网上也可以看到,Go的pkg默认安装路径是/usr/local/go
PATH很重要,系统自带的源码要运行必须有这个路径,默认安装路径时,在/usr/local/go/bin
GOPATH可以是用户任意喜欢的地方,放置自己写的go程序
此时,.bash_profile文件编写完毕,按esc,敲入:wq,回车,搞定。
退回到终端后,敲入source .bash_profile 使编辑生效
验证一下路径配置是否成功:echo $GOROOT ,就能看到/usr/local/go了。
如果没有看到,再重启一下ternimal吧。
环境变量配置完成。
Go语言结构
Go 语言的基础组成有以下几个部分:
- 包声明
- 引入包
- 函数
- 变量
- 语句 & 表达式
- 注释
编写有一个简单的go程序:main.go。
1
2
3
4
5
6
7
8package main
import "fmt"
func main() {
/* 这是我的第一个简单的程序 */
fmt.Println("Hello, World!")
}在terminal下列输入命令,运行上述的代码。
1
2$ go run main.go
// 输出:Hello, World!
程序解析:
第一行代码 package main 定义了包名。你必须在源文件中非注释的第一行指明这个文件属于哪个包,如:package main。package main表示一个可独立执行的程序,每个 Go 应用程序都包含一个名为 main 的包。
下一行 import “fmt” 告诉 Go 编译器这个程序需要使用 fmt 包(的函数,或其他元素)。通过 import 关键字来导入其他非 main 包。
可以通过 import 关键字单个导入:
1
2import "fmt"
import "io"也可以同时导入多个:
1
2
3
4import {
"fmt",
"io"
}使用 . 调用:
package 别名:
1
2// 为fmt起别名为fmt2
import fmt2 "fmt"省略调用(不建议使用):
1
2// 调用的时候只需要Println(),而不需要fmt.Println()
import . "fmt"前面加个点表示省略调用,那么调用该模块里面的函数,可以不用写模块名称了:
1
2
3
4import . "fmt"
func main (){
Println("hello,world")
}下一行 func main() 是程序开始执行的函数。Go 程序是通过 package 来组织的。
只有 package 名称为 main 的包可以包含 main 函数。main 函数是每一个可执行程序所必须包含的,一般来说都是在启动后第一个执行的函数(如果有 init() 函数则会先执行该函数)。一个可执行程序有且仅有一个 main 包。注释,在程序执行时将被忽略。主要分为单行注释和多行注释。其中多行注释也叫块注释,不可以嵌套使用,一般用于包的文档描述或注释成块的代码片段。
1
2
3
4
5// 单行注释
/*
Author by 菜鸟教程
我是多行注释
*/下一行 fmt.Println(…) 可以将字符串输出到控制台,并在最后自动增加换行字符 \n。fmt 包是实现了格式化 IO(输入/输出)的函数。
使用 fmt.Print(“hello, world\n”) 可以得到相同的结果。
Print 和 Println 这两个函数也支持使用变量,如:fmt.Println(arr)。如果没有特别指定,它们会以默认的打印格式将变量 arr 输出到控制台。当标识符(包括常量、变量、类型、函数名、结构字段等等)以开头字母的大小写来决定其是否能被外部包调用,具体如下:。
函数名首字母小写即为 private /protected(此部分的内容有待商榷,发现网上的一些资料是不一致的):
1
func getId() {}
函数名首字母大写即为 public :
编辑器——Goland
Go常用的一个编辑器是Goland
Go框架 ——Gin
Gin是一个Golang 微框架,封装比较优雅,API友好,源码注释比较明确,已经发布了1.0版本。具有快速灵活,容错方便等特点。其实对于golang而言,web框架的依赖要远比Python,Java之类的要小。
参考:
参考: