Golang入门 | 青训营笔记

81 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 1 天

Golang

1.1什么是go语言(优点)

  1. 高性能、高并发
  2. 语法简单、学习曲线平缓
  3. 丰富的标准库
  4. 完善的工具链
  5. 静态链接
  6. 快速编译
  7. 跨平台
  8. 垃圾回收

1.2哪些公司在使用Go语言

  1. 字节跳动
  2. 腾讯
  3. 美团
  4. 滴滴
  5. 百度等等

2.1开发环境 - 安装Golang

go.dev/ 需调整环境变量 配置IDE vscode可直接官网安装,需安装插件

2.2基础语法

Hello World

//main包 入口
package main 

import( 
    //标准库的fmt包,包括基本输入输出
    "fmt" 
)

func main(){
    fmt.Println("hello world")
}

变量

声明两种方法:

  1. var 变量名 = 值,根据类型自动确定
  2. 变量名 := 值,根据类型自动确定

if-else

和c++类似,但是条件判断不能有括号,执行内容的上面的右括号需和条件判断同一行,格式如下:

if 条件 {
    执行内容
}else {
    执行内容
}

循环

golang只有for循环一种,没有while,do-while

  1. 死循环:
for {
    
}
  1. 类似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语言看上去十分的简洁、美观。