后端与go | 青训营笔记

86 阅读3分钟

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

本堂课的知识要点有

前言

  1. 什么是go语言
  2. 高性能,高并发
  3. 语法简单,学习曲线平缓
  4. 丰富的标准库等

安装配置环境:

配置环境 go下载 +vscode插件下载+安装扩展 配置结果如下: image.png

语法-变量

变量可以通过变量名访问。

Go 语言变量名由字母、数字、下划线组成,其中首个字符不能为数字。这与c/c++同

声明变量的一般形式是使用 var 关键字:

练习如下


import 	("fmt"  // 导入内置 fmt 包
	"math"
)
//变量
func main(){  // main函数,是程序执行的入口
	var a = "initial"
	var b,c int = 1,2
	var d = true
	//1
	var e float64
	var m int = 1
	var p = 1000
	//
	//2
	f :=float32(e)
	g :=a + "foo"
	j :=99
	fmt.Println(a,b,c,d,e,f,m,p,j)
	fmt.Println(g)
//常量
	const s string = "constant"
	const h  = 500000000
	const i = 3e20 /h
	const s1 = "gogogo"
	fmt.Println(s,h,i,math.Sin(h),math.Sin(i),s1)
	
	
	
}

import 	("fmt"  // 导入内置 fmt 包
)
//if -else
func main(){  // main函数,是程序执行的入口
	if 7%2==0 {
		fmt.Println("7 is gaga")
	}else{
		fmt.Println("7 is gugu")

	}
	num:=9;
	if num < 0 {
		fmt.Println(num,"is kk")
	}else if num < 10 {
		fmt.Println(num,"tt")
	}else{
		fmt.Println(num,"666")
	}
}


import 	("fmt"  // 导入内置 fmt 包
)
//循环
func main(){  // main函数,是程序执行的入口
	i := 1
	for{
		fmt.Println("loop")
		break
	}
	for j:= 7;j < 9; j++{
		fmt.Println(j)
	}
	for n:=0; n<5;n++{
		if n%2 == 0{
			continue
		}
		fmt.Println(n)
	}
	for i<=3{
		fmt.Println(i)
		i = i + 1
	}
}

Go 语言内置的运算符有:

  • 算术运算符
  • 关系运算符
  • 逻辑运算符
  • 位运算符
  • 赋值运算符
  • 其他运算符 函数是基本的代码块,用于执行一个任务。

函数

Go 语言最少有个 main() 函数。

练习

image.png 可以通过函数来划分不同功能,逻辑上每个函数执行的是指定的任务。

函数声明告诉了编译器函数的名称,返回类型和参数。

Go 语言标准库提供了多种可动用的内置的函数。例如,len() 函数可以接受不同类型参数并返回该类型的长度。如果我们传入的是字符串则返回字符串的长度,如果传入的是数组,则返回数组中包含的元素个数。 Go 语言中变量可以在三个地方声明:

  • 函数内定义的变量称为局部变量
  • 函数外定义的变量称为全局变量
  • 函数定义中的变量称为形式参数

这与c++/c同

Go 数组的长度不可改变,在特定场景中这样的集合就不太适用,Go 中提供了一种灵活,功能强悍的内置类型切片("动态数组"),与数组相比切片的长度是不固定的,可以追加元素,在追加时可能使切片的容量增大。

练习

image.png

image.png Go 语言中数组可以存储同一类型的数据,但在结构体中我们可以为不同项定义不同的数据类型。

结构体是由一系列具有相同类型或不同类型的数据构成的数据集合。

image.png Go 语言中 range 关键字用于 for 循环中迭代数组(array)、切片(slice)、通道(channel)或集合(map)的元素。它在数组和切片中它返回元素的索引和索引对应的值,在集合中返回 key-value 键值对。

image.png

格式化字符串 image.png json&go image.png

字符串操作

image.png