后端笔记 | go语言初学

264 阅读4分钟

GO语言初学:

优点:

1.性能好:

和c++java一样的高性能,而且比java用起来简单,不用过多的调用第三方库,自身库就有很强大的功能

2.好学:

和c一样易懂,但是

3,标准库丰富:

不用解决版本冲突等问题,自身库用起来也相对

语法:

image-20241102192130433

main包是入口包,相当于入口文件

import导入包

image-20241102192248654

run是直接运行

build是编译

变量:

image-20241102192431545

他回合python一样自动识别

也可以自己定义

两种方法

第一种var定义

第二种冒号定义

定义常量的时候同上

if else:

image-20241102192613895

类似于c++但是括号可以省略不写,写上的话也可以,他会在运行的时候自动清除掉

比较的话用字符串之间直接用等号也可以

但是不同点是他的大括号不可以省略不写

循环:

image-20241102192810337

没有while,直接不写定义就是一个死循环,像第一个

也可以加上和c里面一样的定义

同样也是不带括号

也可以用continue和break

switch

image-20241102193034382

他可以不加break,遇见的话直接退出

而且这个是switch不用必须定义为int型

什么都可以

数组:

image-20241102193259479

他是定长的

切片:

image-20241102193433775

直接就是一个变长的数组

可以用append但是最后用完之后他要再赋值回去因为他的本质其实一个存储了长度的指针

map

image-20241102193657102

前面是key,后面是value

存储完全无序

想判断的话可以定义一个来进行比较

range:

image-20241102193832165

也是一种遍历方法

函数:

image-20241102194229555

原生就支持返回错误信息

像第二个就是直接返回错误信息,有没有这个值

在业务中一般都返回两个值

指针:

image-20241102194359864

类似于c++了

结构体:

image-20241102194457367

可以不传入值

不传入的话int默认为0

string默认为空字符串“”

也可以作为函数的的参数

作为参数的话也可以用指针

同理用指针的话可以避免对大的结构体的复制,也可以直接修改掉指针

错误处理:

image-20241102194833131

因为他可以直接返回错误

剩下的按照正常的来考虑就行了

字符串的操作:

image-20241102194940997

就是如图了,也都是一些一般操作

中文的话字节会比较多,参考编码格式,要注意

对于字符串 "你好",在 UTF-8 编码中:

  • 通常占用 3 个字节。
  • 通常也占用 3 个字节(但具体字节数可能因字符集和编码实现而异,但 UTF-8 中大多数中文字符占用 3 个字节是一个常见的规则)。

当您尝试执行 a[0] + a[1] + a[2] + a[3] 时,您实际上是在将这些字节的整数值相加。这些值通常不是人类可读的字符,而是表示字符编码的数值。

您可以使用 for range 循环来遍历字符串中的每个 rune



hello world!  
Index: 0, Character: 你, Unicode Code Point: U+4F60  
Index: 1, Character: 好, Unicode Code Point: U+597D
字符串格式化:

image-20241102200237278

用%+打印比较详细的值

用%+#打印出非常详细的值

也是%.2f来打印小数点后几位

json处理:下去再看

image-20241102200434131

时间处理:

image-20241102200509573

时间戳now.unix

数字字符串转换:下去了解

image-20241102200620110

进程信息:下去了解