Go学习day1 | 青训营

97 阅读3分钟

01介绍

1.1什么是go语言

1.高性能、高并发

2.语法简单、学习曲线平缓

3.丰富的标准库

4.完善的工具链

5.静态链接

6.快速编译

7.跨平台

8.垃圾回收

1.2哪些公司在使用go语言

image.png

1.3字节跳动为什么全面拥抱Go语言

1.最初使用的 Python,由于性能问题换成了Go

2.C++不太适合在线 Web业务

3.早期团队非Java背景

4.性能比较好

5.部署简单、学习成本低

6.内部 RPC和 HTTP框架的推广

02入门

2.1开发环境-安装Golang

下载链接 go.dev/

studygolang.com/dl

goproxy.cn/

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 代码块。