文章分类 - Go学习之路
摘要:iris框架以及gorm 首先,先上官方文档 gorm:https://jasperxu.github.io/gorm-zh/associations.html#bt iris:https://studyiris.com/example/iris.html 先看一个小例子: 前面不用说, app.u
阅读全文
摘要:os/exce模块 这是基本的用法,最后输出结果需要用string强制转换一下。 demo2:杀死一个进程,需要用到上下文管理器,context里面的WithCancel cronexpr模块 cron基础知识: 其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,
阅读全文
摘要:微服务之go-micro(二)——docker与mysql 首先,目录结构如下: 这个小demo的思路是把数据库放在一个容器中,然后user-srv另外起一个容器,通过user-srv来访问mysql. 首先创建mysql的容器 (运行下面的命令前先拉取mysql的镜像) handler.go(处理
阅读全文
摘要:Go之路:微服务之go-micro 主要是根据这个文档来学习的,https://blog.dingkewz.com/post/ 此系列不会详细说明go-micro框架,只是用于记录自己的学习历程以及技术沉淀,因为上面的文档已经写的很详细了。 上面这两个是必要的准备。 一、proto文件 可以用于自动
阅读全文
摘要:Sync.WaitGroup 可以用于控制一组goroutine 例如: wg.Wait()只有在技术器等于0才会返回\ 而每个goroutine在开始之前+1,结束后清零,就达到了控制goroutine结束的效果.
阅读全文
摘要:etcd的学习 etcd测试链接 输出如下: PS E:\golang\go_pro\src\safly> go run main.goconnect succPS E:\golang\go_pro\src\safly>etcd存取值 输出如下: PS E:\golang\go_pro\src\sa
阅读全文
摘要:context上下文管理 简单的学习一下,后面会继续深入。 介绍四个方法 1.WithTimeout 2.WithValue 3.WithCancle 4.WithDeadline 类似于一个定时器 这是定时器的用法,第一次创建的ctx可以继承 例如:
阅读全文
摘要:Kafka 学习任何技术,跟学骑自行车一样,不要一开始只关注它的具体细节是什么。先学着怎么骑,骑着骑着就了解大致的原理,这个时候在去看它的原理,会很轻松。 所以,直接安装先让他跑起来再说。本人的电脑返厂了emmm,在网吧写的这个,懒得虚拟机了,直接windows上搞 详细文章:https://blo
阅读全文
摘要:Http编程 go里面的http模块都是已经封装好的,在net/http里面 几行代码实现web服务: 另外,如果panic需要捕获,当项目规模比较大的时候,不能在每个函数前面都写一个捕获panic的功能,所以需要重新封装一个函数 渲染模板:使用text/template,ParseFiles方法
阅读全文
摘要:单元测试 单元测试就是用来自己测试的小功能 1.文件名必须以_test.go结尾 2.函数必须以Test开头,参数必须是*testing.T 3.错误日志可以用fatal打出,另外还有Fatalf方法 4.直接进入测试文件目录然后执行go test
阅读全文
摘要:定时器 定时器一般配合Select使用,返回是一个管道 每次取一个值 一定要记得Stop否则会发生内存泄漏
阅读全文
摘要:Channel 协程之间的通信有两种方式 1.全局变量和锁 2.channel 上个章节中用到的就是全局变量和锁的方式来操作一个公共数据 channel的概念 channel已经实现了线程安全,不需要额外加锁了 channel的基本用法: 虽然channel需要指明类型,但是如果指定为空接口的话就可
阅读全文
摘要:Goroutine Go语言的核心,就是Goroutine 先说说线程和协程的关系,为什么Go能比较好的处理高并发呢 因为go起的是协程,协程是微量级的线程,不同于java等其他语言起的是重量级的线程,是内核态的 go是用户态的,可以由用户自己分配,所以起成千上万个协程也是比较轻松的 go是这样处理
阅读全文
摘要:Json Json模块放在"encoding/json" 主要是json.Marshal()和json.Unmarshal() 打包: 解包:
阅读全文
摘要:命令行参数 go自带的有一个os.Args来存放程序运行时候的参数 如果没传的话默认第一个是程序运行的路径 例如: 另外,一般用flag包来管理命令行的参数 例子: 这样子就能够动态的获取配置文件里面的信息进行初始化了 有一个点需要注意就是写完之后需要flag.Parse一下才能生效.
阅读全文
摘要:文件读写 如果文件较小可以用io/ioutil 统计文件中字符字母空格符号的例子: 1.当文件读完的时候,用err==io.EOF判断 2.文件打开后要记得关闭,可以defer file.close() io/util 文档写的比较详细,或者直接看例子 与bufio不同的是它是直接读取整个文件的内容
阅读全文
摘要:终端读写 终端读写分为两种 一种是从磁盘,另外一种从缓存区来操作,速度会快很多,从缓存区主要用到bufio 另外补充: os.Arg获取命令行的参数 例子:strings.Split和Ssacnf()的区别 后面是从缓存读写的例子 创建一个read对象,然后使用它的readstring方法,其他方法
阅读全文
摘要:反射 反射主要是可以动态获取变量以及可以对变量进行很多操作 例子: 另外,当传入指针进入的时候,需要用a.Elem()来获取变量的值,如果不这样做 会报错 例如: 结果: 传入指针时,需要加上Elem()方法才能获取到指针所指的变量(因为反射的这些类型不支持*号操作) 另外,还可以对值的方法,字段等
阅读全文
摘要:接口 例如,现在有多个结构体,老师,学生等等,现在需要根据他们的名字进行排序,不能每个类型都单独写一个排序 这时候就能用到接口,只要实现接口内置的方法就能直接排序了.可扩展性非常好。 例子: 断言:在传入的类型不确定时,可以做简单判断,可以用switch case ; 例如switch a.(typ
阅读全文
摘要:小demo 图书馆管理系统 目录结构是这样的,管理员那部分偷个小懒,逻辑都不难 因为学的比较快,所以用来做复习,也基本达到了这个效果。 main.go book.go admin.go student.go 总结: 1.go里面的很多方法都没有现成的接口,如切片里删除元素需要自己
阅读全文

浙公网安备 33010602011771号