1.GO语言
Go(又称 Golang)是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 开发的一种静态强类型、编译型语言。Go 语言语法与 C 相近,但功能上有:内存安全,GC(垃圾回收),结构形态及 CSP-style 并发计算
1.1简介
Go(又称Golang)是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。
罗伯特·格瑞史莫(Robert Griesemer),罗勃·派克(Rob Pike)及肯·汤普逊(Ken Thompson)于2007年9月开始设计Go,稍后Ian Lance Taylor、Russ Cox加入项目。Go是基于Inferno操作系统所开发的。Go于2009年11月正式宣布推出,成为开放源代码项目,并在Linux及Mac OS X平台上进行了实现,后来追加了Windows系统下的实现。在2016年,Go被软件评价公司TIOBE 选为“TIOBE 2016 年最佳语言”。 目前,Go每半年发布一个二级版本(即从a.x升级到a.y)
1.2撰写风格
在Go中有几项规定,当不匹配以下规定时编译将会产生错误。
- 每行程序结束后不需要撰写分号(;)。
- 大括号({)不能够换行放置。
- if判断式和for循环不需要以小括号包覆起来。
Go亦有内置gofmt工具,能够自动整理代码多余的空白、变量名称对齐、并将对齐空格转换成Tab
1.3编译器
当前有两个Go编译器分支,分别为官方编译器gc和gccgo。官方编译器在初期使用C写成,后用Go重写从而实现自举。Gccgo是一个使用标准GCC作为后端的Go编译器。
官方编译器支持跨平台编译(但不支持CGO),允许将源代码编译为可在目标系统、架构上执行的二进制文件
1.4语言特点
- 背靠大厂,google背书,可靠
- 天生支持并发(最显著特点)
- 语法简单,容易上手
- 内置runtime,支持垃圾回收
- 可直接编译成机器码,不依赖其他库
- 丰富的标准库
- 跨平台编译
1.5 Go语言相关学习网站
- Go 官网:https://golang.google.cn/
- Go 语言圣经:The Go Programming Language
- GO 中文文档:https://www.topgoer.com/
2.Hello Word
go
package main // 一个项目中只能有一个入口函数
import "fmt" //有引用必须调用
func main(){
}
package main // 一个项目中只能有一个入口函数
import "fmt" //有引用必须调用
func main(){
}
数组
slice
struct使用场景,固定好的数据结构,不可以变更
go
Order :=struct {
Uid string
Price string
Type int
time string
ProductId int
}{}
Order :=struct {
Uid string
Price string
Type int
time string
ProductId int
}{}
map使用场景,不用固定数据类型,可以随便增加减少
go
//某个人情况
people := map[string]interface{}{"name":"zhangsan","score":100,"sex":false}
//某个人分数
score:=map[string]int{"zhangsan":100,"lisi":10,"wangwu":11}
//某个人情况
people := map[string]interface{}{"name":"zhangsan","score":100,"sex":false}
//某个人分数
score:=map[string]int{"zhangsan":100,"lisi":10,"wangwu":11}