01介绍
1.1什么是go语言
1.高性能、高并发
2.语法简单、学习曲线平缓
3.丰富的标准库
4.完善的工具链
5.静态链接
6.快速编译
7.跨平台
8.垃圾回收
1.2哪些公司在使用go语言
1.3字节跳动为什么全面拥抱Go语言
1.最初使用的 Python,由于性能问题换成了Go
2.C++不太适合在线 Web业务
3.早期团队非Java背景
4.性能比较好
5.部署简单、学习成本低
6.内部 RPC和 HTTP框架的推广
02入门
2.1开发环境-安装Golang
下载链接 go.dev/
2.1开发环境-配置集成开发环境
goland或vscode
2.2基础语法 -hello world
Go语言的基础语法与C语言类似,采用了分号自动插入的方式,不需要显式地使用分号来结束语句。 每个Go程序都必须包含一个package声明,用于指定当前文件所属的包。在Go语言中,可以使用import关键字来导入包。下面是hello world的代码:
package main
import (
"fmt"
)
func main() {
fmt.Println("hello world")
}
包声明代码必须放在文件的开头,并且每个导入的包都需要在代码中使用,否则会导致编译错误。在main函数中,我们使用了fmt.Println函数打印hello world
2.2基础语法-变量
使用var关键字声明变量,可以指定类型或使用类型推断。 在Go语言中,可以使用var关键字来声明变量。下面是一些示例代码,展示了不同的变量声明方式:
package main
import (
"fmt"
"math"
)
func main() {
var a = "initial"
var b, c int = 1, 2
var d = true
var e float64
f := float32(e)
g := a + "foo"
fmt.Println(a, b, c, d, e, f) // initial 1 2 true 0 0
fmt.Println(g) // initialapple
const s string = "constant"
const h = 500000000
const i = 3e20 / h
fmt.Println(s, h, i, math.Sin(h), math.Sin(i))
}
在go语言中如果没有指定变量类型,可以通过变量的初始值来判断变量类型.对于常量没有确定的类型,可以根据变量的初始值来判定变量的类型.
还可以通过这样的方式声明变量变量名 := 初始值
2.3基础语法-if else
if-else是常见的控制流语句。与c语言不同的是,if语句中不需要有括号.在Go语言中,可以使用以下控制流语句来控制程序的执行流程:
if 7%2 == 0 {
fmt.Println("7 is even")
} else {
fmt.Println("7 is odd")
}
2.4基础语法-循环
go只有for循环,循环会在每次迭代之前执行初始化语句,然后检查条件是否为真,如果为真则执行循环体代码,然后执行增量语句,再次检查条件。循环会一直执行,直到条件为假。最简单的for循环如下
for {
fmt.Println("loop")
break
}
如果没有break,这个循环将是一个死循环
2.5基础语法-switch
与c++类似,但go中是不需要在每个分支末尾加break.go中的Switch功能更加强大,可以使用任何变量类型,如字符串,结构体等.甚至期待任何的if-else语句.
switch a {
case 1:
fmt.Println("one")
case 2:
fmt.Println("two")
case 3:
fmt.Println("three")
case 4, 5:
fmt.Println("four or five")
default:
fmt.Println("other")
}
在这个例子中,根据表达式的值,选择执行与之匹配的 case 代码块。如果没有匹配的 case,则执行 default 代码块。