Golang学习方向
- 区块链研发工程师
- Go服务器端/游戏软件工程师
- Golang分布式/云计算软件工程师
Golang的应用领域
- 区块链应用:区块链技术,也别成为分布式账本技术,是一种互联网数据库技术。
- 后端服务器应用:美团后台流量支撑、仙侠道
- 云计算/云服务后台应用:盛大云CDN(内容分发网络)、京东消息推送云服务,京东分布式文件系统。
Golang的学习方法
- 金花鼠gordon
- 学习一定要有目的性,不是为了知识普及,这样的话浪费时间没必要
- 先建立框架,然后细节
- 培养快速学习能力
- 先怎么做,然后为什么这么做
- 不是会了才做,而是做了才会
- 学习编程是琢磨别人怎么做,而不是我认为该怎么做
如何快速深入学习一个新技术或一个知识点
- 有一个需求
- 现有技术能解决吗?传统方法有缺陷,不够好;新技术
- 学习新技术或知识点:原理,基本语法
- 快速入门案例:不需要涉及技术细节
- 研究细节:怎么使用规范;使用陷阱;使用时,要注意什么
- 解决需求问题
Go语言
- Go语言是Google公司创造的:主流编程语言不能合理利用多核多CPU;缺乏一个足够简介高效的编程语言;编译速度和开发速度都要很快。
- Ken Thompson(肯,汤姆森):Unix的原创者,C语言、B语言的主要发明人。
- Rob Pike(罗布,派克):Unix团队的,创造UTF-8字元编码。
- Robert
- 07年开始设计,09年11月10日开放源代码…
Go语言特点
-
静态编译语言的安全和性能
-
动态语言开发维护的高效率
-
Go = C + Python
-
从C语言继承了很多理念
-
引入包的概念,Go语言一个文件都要归属一个包
-
垃圾回收机制,内存自动回收,不需要开发人员管理
-
天然并发
- 从语言层面支持并发,实现简单
- goroutine,轻量级线程,可实现大并发处理,高效利用多核
- 基于CPS并发模型实现
-
吸收了管道通信机制,通过channel实现groute通信
-
函数可以返回多个值
-
新的创新:切片slice,延时执行defer等
Go语言开发工具
- VScode
- LiteIDE
- GoLang
Go环境变量
- GOROOT:Go的安装目录
- Path:Go的安装目录\bin
- GOPATH:D:\Go\GOPATH go项目存放路径,即工作目录
Go helloworld
-
go build hello.go 编译成可执行文件
-
hello.exe 运行
-
go run .go文件 编译、运行
-
编译后的可执行文件可以放在没有go开发环境的机器上运行
-
可执行文件会包含依赖的库文件,所以,可执行文件变大了很多
编译和运行
- 指定编译文件名:go build -o myhello.exe hello.go
Go语言开发注意事项
- Go源文件以go为扩展名
- Go程序执行的入口函数是main()
- Go语言严格区分大小写
- Go语言每条语句后不需要分号
- Go语言是一行一行编译的,不能把多条语句写在同一行
- Go语言定义的变量或者import的包如果没有使用到,代码不能编译通过
- 大括号成对出现
Go语言的转义字符
- \t :一个制表位,实现对齐功能
- \n :换行符
- \ :一个\
- " :一个"
- \r :一个回车
注释
- 提高代码的可阅读性
- /* */块注释 不能嵌套注释
- // 行注释 ctrl+/
规范的代码风格
- 正确的注释和注释风格:官方推荐行注释
- 正确缩进和空白:tab / shift+tab;gofmt -w main.go
- 运算符两边各加一个空格
- Go语言的左大括号不能换行
- 行长不要超过80个字符,使用逗号分割
Go语言官方指南
- https://golang.google.cn/pkg/
API
- application program interface :应用程序编程接口
Dos
- Disk Operating System磁盘操作系统
- Dos终端发送指令——>Dos操作系统,解析指令——> Windows目录结构
- dir 查看当前目录及文件
- copy 复制文件
- move 剪切文件
- cls 清屏
- exit 退出