Go 标准库之 os https://pkg.go.dev/os 1、介绍os包中提供了操作系统函数的接口,是一个比较重要的包。它的作用主要是在服务器上进行系统的基本操作,如文件操作、目录操作、执行命令、信号与中断、进程、系统状态等等。下面分模块归纳一些常用函数。 2、系统信息2.1、函数列表 函数 功能 Hostname() 获取当前主机名 Getpid() 返回调用者所在进程的进程ID Get 2024-12-03 Go > Go 标准库 #Go #Go 标准库
Go 标准库之 os 文件操作 https://pkg.go.dev/os 1、介绍在Go语言中,文件操作的大多数函数都在os包里面,文件的信息包括文件名、文件大小、修改权限、修改时间等。 1.1、文件接口属性(FileInfo)12345678type FileInfo interface { Name() string // 文件名 Size() int64 // 文件大小 Mode 2024-12-03 Go > Go 标准库 #Go #Go 标准库
Go 标准库之 regexp https://pkg.go.dev/regexp 注意regexp 对 \u 支持不好,详见 https://github.com/google/mtail/issues/257 所以不能直接用 [\u4e00-\u9fa5],有两种解决办法 12345// 函数Compile和MustCompile传入参数时要写在英文双引号里面,不可以是单引号,也不可以是特殊字符 ` ,就是esc键底 2024-12-03 Go > Go 标准库 #Go #Go 标准库
Go 标准库之 sort https://pkg.go.dev/sort 总结123456789101112sort.Float64s(fs) // 将[]float64按升序排序sort.Float64AreSorted(fs)// 如果[]float64是有序的则返回Truesort.Ints(is) // 将[]int按升序排序sort.IntAreSorted(is) / 2024-12-03 Go > Go 标准库 #Go #Go 标准库
Go 标准库之 strconv 字符串转换 https://pkg.go.dev/strconv Go 不会对数据进行隐式的类型转换,只能手动去执行转换操作。strconv 包提供了许多可以再字符串和其他类型的数据之间进行转换的函数 方法总结1234567891011121314151617181920212223242526272829// 参数 bs 是一个 []byte 切片,base 是一个进制单位(2~36), // bi 2024-12-03 Go > Go 标准库 #Go #Go 标准库
Go 标准库之 string https://pkg.go.dev/string 方法总结1234567891011121314151617181920212223242526272829303132333435363738strings.Split(names,".")// 分隔字符串,以.为分隔符strings.SplitAfter() // 保留分隔符strings.SplitN() // 指 2024-12-03 Go > Go 标准库 #Go #Go 标准库
Go 标准库之 sync sync包对并发和同步机制进行了实现。 https://pkg.go.dev/sync 1、介绍sync包提供了互斥锁。除了Once和WaitGroup类型,其余多数适用于低水平的程序,多数情况下,高水平的同步使用channel通信性能会更优一些。 2、并发等待组(WaitGroup)WaitGroup,即等待一组Goroutine结束。父Goroutine调用Add()方法来设置应等待Gor 2024-12-03 Go > Go 标准库 #Go #Go 标准库
Go 标准库之 time time包提供了时间的显示和测量用的函数。日历的计算采用的是公历。 https://pkg.go.dev/time 1、时间中的类型1.1、时间time.Time 类型表示时间。我们可以通过 time.Now() 函数获取当前的时间对象,然后获取时间对象的年月日时分秒等信息。示例代码如下: 12345678910111213func timeDemo() { now := ti 2024-12-03 Go > Go 标准库 #Go #Go 标准库
Go 标准库之 unicode unicode 包主要提供了一些用来检查 Unicode 码点是否符合主要标准的函数。 例如,判断一个字符是否是一个数字或者小写字母 https://pkg.go.dev/unicode 1、unicode 包的函数 变量c是一个rune类型变量,表示一个Unicode码点。 12345678910111213141516171819unicode.Is(table, c) // 如果 2024-12-03 Go > Go 标准库 #Go #Go 标准库
Go 标准库之 utf8 https://pkg.go.dev/utf8 方法总结1234567891011121314// 使用 utf8 包里的函数需要在程序中导入“unicode/utf”,变量 b 是一个 []byte 类型的切片,s 是字符串,c 是一个 rune 类型的 unicode 编码utf8.DecodeLastRune(b) // 返回b中最后一个rune和它占用的字节数,或者U+F 2024-12-03 Go > Go 标准库 #Go #Go 标准库
前后端分离开发理解 前后端开发在传统的web应用开发中,大多数人将浏览器作为前后端的分界线。将浏览器中为用户进行页面展示的部分称之为前端,而将运行在服务器,为前端提供业务逻辑和数据准备的所有代码统称为后端 之前以为前后端分离只是一种web应用开发模式,只要在web应用的开发期进行了前后端开发工作的分工就是前后端分离。其实前后端分离并不只是开发模式,而是web应用的一种架构模式。 在开发阶段,前后端工程师要提前约定好 2024-12-03 Go > Go 标准库 #Go #Go 标准库
01-单引号、双引号、反引号 Go 中的单引号 (‘)、双引号 (“) 和反引号 (`)在 Go 中,单引号 (‘)、双引号 (") 和反引号 ( \ `) 都有不同的用途和含义,具体如下: 1、单引号 (')单引号用于表示 字符字面量(单个字符)。在 Go 中,字符是一个单独的 Unicode 字符,并且它的类型是 rune(即 int32 类型)。 表示单个字符(rune): 1var c 2024-12-02 Go #Go
01-数据类型 1、数据类型分类值类型:基本数据类型是Go语言实际的原子,复合数据类型是由不同的方式组合基本类型构造出来的数据类型,如:数组,slice,map,结构体 1234567整型 int8,uint # 基础类型之数字类型浮点型 float32,float64 # 基础类型之数字类型复数 # 基础类 2024-12-02 Go #Go
01-数据类型之值类型之 byte 和 rune 组成每个字符串的元素叫做字符。可以通过遍历或者单个获取字符串元素获得字符,遍历的函数有两个,分别是 byte 和 rune bytebyte 是 uint8 的别称,使用 byte 主要是为了区分字节和无符号整型两种类型 byte 代表了 ASCII 码的一个字符,直接打印字节输出的是 ascii 码,字节必须使用单引号包起来,需要通过格式化输出 示例: 1234func main() 2024-12-02 Go #Go
01-数据类型之值类型之字符串 1、字符Golang 中没有专门的 字符 类型,如果要存储单个字符(字母),一般使用 byte 来保存,且使用单引号包裹。 12345678var c1 byte = 'a'var c2 byte = '0'fmt.Println("c1=", c1) //输出 97 fmt.Println("c2=", c2) //输出 48fmt.Printf("c1=%c,c2=%c 2024-12-02 Go #Go
01-数据类型之值类型之数值 1、数值类型数值类型指基本类型中的:整型、浮点型、复数。 2、整数整数类型有无符号(如 int)和带符号(如 uint)两种,这两种类型的长度相同,但具体长度取决于不同编译器的实现。 int8、int16、int32(别名:rune) 和 int64 四种有符号整数类型,分别对应 8、16、32、64bit 大小的有符号整数 uint8(别名:byte)、uint16、uint32 和 ui 2024-12-02 Go #Go
01-数据类型之值类型之数组 1、数组1.1、数组的声明数组是一段固定长度的连续内存区域。数组的长度定义后不可更改,长度使用 len() 获取。 123456var arr1 [10]int //定义长度为10的整型数组,很少这样使用arr2 [5]int := [5]int{1,2,3,4,5} //定义并初始化arr3 := [5]int{1,2,3,4,5} //自动推 2024-12-02 Go #Go
01-数据类型之值类型之结构体 1、结构体的基本使用结构体可以用来声明新的类型,作为其他类型的属性/字段的容器,如下定义一个学生结构体: 1234567891011121314151617181920type Person struct { name string age int}//按顺序初始化:每个成员都必须初始化var p1 Person = Person{"lisi", 20 2024-12-02 Go #Go
01-数据类型之值类型之结构体之 Tag Tag 简介Tag 用于标识结构体字段的额外属性,有点类似于注释。Tag 是结构体在编译阶段关联到成员的元信息字符串,在运行的时候通过反射的机制读取出来。标准库 reflect 包中提供了操作Tag的方法 结构体的字段的定义。在 reflect 包中,使用结构体 structField 表示结构体的一个字段 12345678type StructField struct { Name 2024-12-02 Go #Go
01-数据类型之引用类型之切片 1、切片创建切片(slice)解决了数组长度不能扩展,以及基本类型数组传递时产生副本的问题。 常用创建方式: 1234var s1 []int // 和声明数组一样,只是没有长度,但是这样做没有意义,因为底层的数组指针为nils2 := []byte {'a','b','c'}fmt.Println(s1) //输出 []fmt.Print(s2) //输出 2024-12-02 Go #Go