摘要: 创建一个结构体,其结构体中的变量是我们要返回的数据,在DB.Raw方法中写我们的sql语句和占位符参数,通过Scan方法把sql返回的数据放入我们的结构体中,结构体的变量名称和sql返回的字段名一致 阅读全文
posted @ 2018-03-27 14:40 小白兔奶糖 阅读(7608) 评论(0) 推荐(0) 编辑
摘要: 在主程序启动的时候开一个goroutine作为消费者,用管道连接生产者和消费者,消费者处于无限循环,从管道中获取channel传过来定时event 注意:channel在消费者创建的时候就连通生产者和消费者 结构图大体如上 消费者代码: 消费者处于无限循环,在循环中拿到Eventchan传过来的数据 阅读全文
posted @ 2018-03-27 14:28 小白兔奶糖 阅读(736) 评论(0) 推荐(0) 编辑
摘要: 如果想知道当前的内存状态,可以使用: 如果需要在一个对象 obj 被从内存移除前执行一些特殊操作,比如写到日志文件中,可以通过如下方式调用函数来实现: runtime.SetFinalizer(obj, func(obj *typeObj)) func(obj *typeObj) 需要一个 type 阅读全文
posted @ 2018-03-15 12:27 小白兔奶糖 阅读(168) 评论(1) 推荐(0) 编辑
摘要: 协程Coroutine 轻量级”线程“ 非抢占式多任务处理,由协程主动交出控制权(如果程序中间没有print,程序会一直霸占着调度器) 编译器/解释器/虚拟机层面的多任务 多个协程可能在一个或多个线程上运行 goroutine可能的切换点 1.I/O,select 2.channel 3.等待锁 4 阅读全文
posted @ 2018-03-13 11:43 小白兔奶糖 阅读(212) 评论(0) 推荐(0) 编辑
摘要: main函数入口 实现了两个接口 阅读全文
posted @ 2018-03-13 10:10 小白兔奶糖 阅读(206) 评论(0) 推荐(0) 编辑
摘要: duck typeing 隐式的实现接口的方法就等于实现了接口 main函数 实现接口一 实现接口二(拿下慕课网首页) Go语言里面有一个语法,可以直接判断是否是该类型的变量: value, ok= element.(T),这里value就是变量的值,ok是一个bool类型,element是inte 阅读全文
posted @ 2018-03-12 22:26 小白兔奶糖 阅读(141) 评论(0) 推荐(0) 编辑
摘要: go语言中首字母大写表示public go语言中首字母小写表示private 结构定义的方法必须放在同一个包内 一个目录只能放一个包 如何扩充系统的类型或别人的类型: 1.定义别名 2.使用组合 使用组合 目录结构: 入口:entry.go 函数体:node.go 定义别名 函数体:queue.go 阅读全文
posted @ 2018-03-12 18:05 小白兔奶糖 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 面向对象:go语言仅支持封装不支持继承和多态 所以go语言没有class,只有struct(结构体) 无论地址还是结构本身,一律用 . 来访问成员 go语言编译器可以自动区分是值传递还是指针传递,值传递不会改变原值,指针传递会复制指针地址 要改变内容必须使用指针接收者,结构过大也考虑用指针接收者,如 阅读全文
posted @ 2018-03-12 11:53 小白兔奶糖 阅读(178) 评论(0) 推荐(0) 编辑
摘要: rune相当于go的char 使用range遍历pos,rune对 使用utf8.RuneCountInString(s)获得字符数量 使用len获得字节长度,使用[]byte获得字节 一般把字节转成[]rune,更加容易操作 阅读全文
posted @ 2018-03-11 23:08 小白兔奶糖 阅读(1017) 评论(0) 推荐(1) 编辑
摘要: go语言中map使用哈希表,必须可以比较相等 除了slice,map,function的内建类型都可以作为key Struct类型不包括上述字段,也可作为key map中的key是无序的 阅读全文
posted @ 2018-03-11 22:34 小白兔奶糖 阅读(171) 评论(0) 推荐(0) 编辑