随笔分类 - go
摘要:go 定时器 一次定时器(官方不建议使用time.After,推荐time.NewTimer) 上面代码一秒后执行 超时控制 备注:使用定时器后,需要关闭,不关闭存在内存泄漏风险。
阅读全文
摘要:go channel 1、不同goroutine之间如何进行通讯? 全局变量和锁同步 Channel 2、channel概念 类似unix中管道(pipe) 先进先出 线程安全,多个goroutine同时访问,不需要加锁 channel是有类型的,一个整数的channel只能存放整数 3、chann
阅读全文
摘要:进程和线程 进程是程序在操作系统中的一次执行过程,系统进行资源分配和调度的 一个独立单位。 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更 小的能独立运行的基本单位。 一个进程可以创建和撤销多个线程;同一个进程中的多个线程之间可以并发执行。 并发和并行 多线程程序在一个核的cp
阅读全文
摘要:go 错误处理 定义错误示例 自定义错误示例 panic和recover Golang 有2个内置的函数 panic() 和 recover(),用以报告和捕获运行时发生的程序错误,与 error 不同,panic-recover 一般用在函数内部。 golang 的错误处理流程:当一个函数在执行过
阅读全文
摘要:json数据协议 导入包: Import “encoding/json” 序列化: json.Marshal(data interface{}) 反序列化: json.UnMarshal(data []byte, v interface{}) json序列化结构体、序列化map、序列化slice示例
阅读全文
摘要:go 终端读写 操作终端相关文件句柄常量 os.Stdin:标准输入 os.Stdout:标准输出 os.Stderr:标准错误输出 示例: go文件读写 os.File封装所有文件相关操作,之前的 os.Stdin, os.Stdout, os.Stderr都是 *os.File 打开一个文件进行
阅读全文
摘要:go 反射 反射:可以在运行时动态获取变量的相关信息 import (“reflect”) reflect.TypeOf,获取变量的类型,返回reflect.Type类型 reflect.ValueOf,获取变量的值,返回reflect.Value类型 reflect.Value.Kind,获取变量
阅读全文
摘要:interface接口 定义:Interface类型可以定义一组方法,但是这些不需要实现。并且interface不能 包含任何变量。 interface类型默认是一个指针 样例一: 样例二: 接口实现 Golang中的接口,不需要显示的实现。只要一个变量,含有接口类型中 的所有方法,那么这个变量就实
阅读全文
摘要:struct结构体 用来自定义复杂数据结构 struct里面可以包含多个字段(属性),字段可以是任意类型 struct类型可以定义方法,注意和函数的区分 struct类型是值类型 struct类型可以嵌套 Go语言没有class类型,只有struct类型 make 用来创建map、slice、cha
阅读全文
摘要:线程同步 import(“sync”) 互斥锁, var mu sync.Mutex 读写锁, var mu sync.RWMutex 资源竞争样例 编译:go build -race go_dev\main -race 资源竞争检测 执行程序会抛资源竞争错误 引入互斥锁解决上面的问题 读写锁+原子
阅读全文
摘要:map数据结构 key-value的数据结构,又叫字典或关联数组 声明: 备注:声明是不会分配内存的,初始化需要make 样例一: 样例二: 样例三: map相关操作 插入和更新:a[“hello”] = “world” 查找:Val, ok := a[“hello”] 遍历: 删除:delete(
阅读全文
摘要:数组概念 1、数组:是同一种数据类型的固定长度的序列。 2、数组定义:var a [len]int,比如:var a[5]int,一旦定义,长度不能变 3、长度是数组类型的一部分,因此,var a[5] int和var a[10]int是不同的类型 4、数组可以通过下标进行访问,下标是从0开始,最后
阅读全文
摘要:1、判断 101-200 之间有多少个素数,并输出所有素数 定义:为在大于1的自然数中,除了1和它本身以外不再有其他因数的数称为质数。 2、打印出100-999中所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。 例如:153 是一个“水仙花数”,因为 153=1 的
阅读全文
摘要:函数声明和注释 1、函数声明: func 函数名字 (参数列表) [(返回值列表)] {} 2. 注释,两种注释,单行注释: // 和多行注释 /* */ 3、 一个.go文件初始化,先执行全局变量,再执行init()函数,init()函数自动调用 4、多个包引用,如果引用顺序是main -> ad
阅读全文
摘要:strings和strconv使用 1、strings使用 strings.HasPrefix(s string, prefix string) bool:判断字符串s是否以prefix开头。 strings.HasSuffix(s string, suffix string) bool:判断字符串
阅读全文
摘要:学习资料 https://gobyexample.com/ windows安装 下载:https://golang.google.cn/dl/ golang在设置windows环境变量的时候有点问题,喜欢在文件夹后面加\,设置完之后最好自己再改一遍。 编辑环境变量GOROOT,将D:\Go\改成D:
阅读全文

浙公网安备 33010602011771号