这是我参与「第五届青训营」伴学笔记创作活动的的第1天
本节课内容如下
1 简介
1-1什么是go语言
- 高性能、高并发;
- 语法简单、学习周期短;
- 丰富的标准库;
- 完整的工具链保证完成;
- 静态链接;
- 快速编译,静态语言中几乎最快的;
- 跨平台(树莓派、路由器);
- 垃圾回收
1-2 字节跳动为什么全面拥抱go语言
- Python性能不佳
- C++不太适合在线web服务
- 早期团队非JAVA背景
- 内部RPC和HTTP框架的推广
1-3 GO语言应用领域
- 服务器编程
- 开发云平台
- 区块链(加密算法方面有优势)
- 分布式系统
- 网络编程
2 入门
2-1 开发环境
可以选择golang或者vscode
我选择了vscode(下载go插件)
powershell中需配置:
$env:GO111MODULE="on"
$env:GOPROXY="http://goproxy.cn"
2-2基础语法-Hello World
pacage main//这个文件属于main包的一部分,程序的入口文件
import "fmt"//导入format包,输入输出字符串,格式化字符串
func main(){
fmt.Println("hello world")
}
go run 运行go build 创建exe
2-3基础语法
-
变量:
函数内部初始化可以用短变量声明:=
如:
s :=10常规格式: var name numType=value
如:
var s int =10 -
if else:
if后面没有括号if后面只能直接接大括号
else必须和大括号写在同一行
-
循环
没有dowhile和while,只有for循环
func f1() { for i := 1; i <= 10; i++ { fmt.Printf("i: %v\n", i) } }可以把初始化变量写到for循环外面
func f2() { i := 1 for ; i <= 10; i++ { fmt.Printf("i: %v\n", i) } }可以只有一个判断条件
func f3() { i := 1 for i <= 10 { fmt.Printf("i: %v\n", i) i++ } }以下情况类似while循环 永真循环:for后面啥也不加
func f4() { i := 1 for { fmt.Printf("i: %v\n", i) i++ } } -
switch
不用加break
-
数组
具有编号且长度固定的元素序列
-
map
字典。
-
range
第一个值返回下标,第二个值返回值
-
指针
主要用途是对传入的值进行修改