GO语言基础笔记 |青训营

72 阅读2分钟

GO语言基础笔记

GO语言是由谷歌开发的一门语言。

  • 天然支持高性能,高并发。
  • 标准库丰富,不需要依赖大量第三方库。
  • 可以通过协程优化性能。
  • 学习成本低,这个比较重要,但是深入理解还是需要大量时间。
  • 大量云原生组件都是由go语言编写,如k8s,docker等

go的环境安装就省略了。因为本人也是学java的,所以过程中会拿golang跟java做一些对比。

首先写一个HelloWorld,如果直接用关键字Println来打印的话会有一些奇奇怪怪的bug

package main  // 声明当前代码所在的包为 main

import "fmt"  // 导入 fmt 包,用于打印输出

func main() {  // 程序入口函数,范围为整个程序

    fmt.Println("HelloWorld")  // 调用 fmt 包中的函数 Println 打印输出 HelloWorld
}

golang的数据类型以及声明方式(声明的变量没有使用会报错)

//它会自动推导数据类型
var demo = "string"
demo1 := "string"
var demo2,demo3 int = 2,3//声明多个并且定义类型

还有什么bool,byte,就不一一展示了,定义常量用的是const关键字,我比较在意的是和java不一样,golang有in8,int16这样的数据类型,可以合理分配大小

for循环的几种方式:

//这种不带退出条件的就是死循环,非常简洁
for {
		fmt.Println(666)
	}
//这种没什么好说,略
for i := 0; i < 666; i++ {
		fmt.Println(666)
	}
//这种可以遍历容器中的元素,i是下标,i2是元素
arr := []int{1, 2, 3, 4, 5}//声明一个不固定长度的数组
	for i, i2 := range arr {
		fmt.Println(i, i2)
	}
//这样也可以,但要注意退出条件,比如break关键字,下面是个死循环
	n := 66
	for n <= 88 {
		fmt.Println(66)
	}
	

创建容器类型,一般用make函数创建,这个函数有三个参数(容器类型,长度,容量),下面是一个示例

slice := make([]int, 3, 5)//创建一个长度为 3,容量为 5 的整型切片,初始化会赋值3个0
Map := make(map[string]int,5)创建一个map容器,它是kv键值对类型,这种类型运用广泛,string是key,int是value
Map["one"]=66 //map的赋值方法
map2:=map[string]int{"one":1,"two":2}//初始化
value, ok := map2["one"]//第二个参数是一个bool,用来判断是否有这个Key

用for循环遍历map的话会有两个返回值,第一个是key,第二个value

其他的大差不差,细节得自己深挖,golang有指针类型,但灵活性没有c++强