这是我参与「第五届青训营 」伴学笔记创作活动的第 1 天
Golang
1.1什么是go语言(优点)
- 高性能、高并发
- 语法简单、学习曲线平缓
- 丰富的标准库
- 完善的工具链
- 静态链接
- 快速编译
- 跨平台
- 垃圾回收
1.2哪些公司在使用Go语言
- 字节跳动
- 腾讯
- 美团
- 滴滴
- 百度等等
2.1开发环境 - 安装Golang
go.dev/ 需调整环境变量 配置IDE vscode可直接官网安装,需安装插件
2.2基础语法
Hello World
//main包 入口
package main
import(
//标准库的fmt包,包括基本输入输出
"fmt"
)
func main(){
fmt.Println("hello world")
}
变量
声明两种方法:
- var 变量名 = 值,根据类型自动确定
- 变量名 := 值,根据类型自动确定
if-else
和c++类似,但是条件判断不能有括号,执行内容的上面的右括号需和条件判断同一行,格式如下:
if 条件 {
执行内容
}else {
执行内容
}
循环
golang只有for循环一种,没有while,do-while
- 死循环:
for {
}
- 类似c++的循环:
for j := 0; j < 9; j++ {
}
i := 1
for i <= 3 {
i++;
}
switch
在Golang中使用switch,可以使用字符串、数字等各种数据类型,而且与c++不同的是:不需要在每一个case后面写入break来结束switch部分代码的执行,Golang中case识别到运行完对应语句后,会自动跳转到switch功能后面的代码。
a := 2
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")
}
数组
声明与初始化
var a [5]int
b := [5]int{1, 2, 3, 4, 5}
切片
创建:变量名 := make([]类型, 长度)
s := make([]string, 3)
map
golang中map完全无序,是随机的 创建: make(map[类型名]类型名)
range
range遍历时返回两个返回值,key和value
函数
参数中,变量类型在后面 返回值:有的返回两个,后面的是错误信息
结构体
定义和c++差不多
type user struct{
name string
password string
}
初始化
a := user{name: "wang", password: "1024")
b := user{"wang","1024"}
c := user{name: "wang"}
时间
导入time包 获取当前时间:now := time.Now() 构造一个时间:t = time.Date(2022,3,27,1,25,36,0,time.UTC) 格式化:t.Format("2006-01-02 15:04:05")
总结
Golang语言和c/c++相似之处很多,也有一些像python语言。Go语言看上去十分的简洁、美观。