1-Golang基础
Go语言诞生小故事
- Go语言核心开发团队
- Google创造Golang的原因
Golang语言的特点
- Go语言保证了既能达到静态编译语言的安全和性能,又达到了动态语言开发维护的高效率,使用一个表达式来形容Go语言:Go=C+Python,说明Go语言既有C静态语言程序的运行速度,又能达到Python动态语言的快速开发。
从C语言中继承了很多理念,包括表达式语法,控制结构,基础数据类型,调用参数传值,指针等等,也保留了C语言一样的编译执行方式及弱化的指针
引入包的概念,用于组织程序结构,Go语言的每一个文件都要归属于一个包,而不能单独存在
垃圾回收机制,内存自动回收,不需要开发人员管理
天然并发,从语言层面支持并发,实现简单;goroutine,轻量级线程,可实现大并发处理,高效利用多核;基于CPS并发模型(Communicating Sequential Processes)实现
吸收了管道通信机制,形成Go语言特有的管道channel,通过channel,可以实现不同的goroutine之间的相互通信
函数可以返回多个值
新的创新:比如切片slice、延时执行defer
Windows下搭建Go开发环境
- SDK下载地址:Go下载 - Go语言中文网 - Golang中文社区 (studygolang.com)
- 解压配置环境变量(GOROOT、path、GOPATH),cmd下
go version
验证是否成功
Hello World
// hello world
package main
import "fmt"
func main() {
fmt.Println("hello world!")
}
- 通过go build(
go build -o myhello.exe hello.go
)命令对该go文件进行编译,生成.exe文件,运行hello.exe文件即可,使用go run命令可以直接运行hello.go程序
Go程序开发的注意事项
- Go源文件以"go"为扩展名
- Go应用程序的执行入口是main()函数
- Go语言严格区分大小写
- Go方法由一条条语句构成,每个语句后不需要分号
- Go编译器是一行行进行编译的,不能把多条语句写在同一行,否则会报错
- Go语言定义的变量或者import的包如果没有使用到,代码不能编译通过
- 大括号都是成对出现的,缺一不可
Go代码风格
- 单行注释// 注释,多行注释/* 注释 */
- gofmt格式化
gofmt hello.go
,或者格式化后重写gofmt -w hello.go
- 运算符两边习惯各加一个空格
- Go语言程序员推荐使用驼峰式命名,当名字有几个单词组成的时优先使用大小写分隔,而不是优先用下划线分隔
- 左大括号必须紧接着语句不换行,大括号必须成对,缺一不可