03 2018 档案

摘要:round((UNIX_TIMESTAMP(finishtime)-UNIX_TIMESTAMP(starttime))/60) 得到的时间是分钟数 阅读全文
posted @ 2018-03-28 16:40 小白兔奶糖 阅读(1907) 评论(0) 推荐(0)
摘要:两个时间戳的计算用ParseInLocation,得到两个Time类型,再用Unix()方法相减,得到时间差 阅读全文
posted @ 2018-03-28 16:30 小白兔奶糖 阅读(11193) 评论(0) 推荐(0)
摘要:创建一个结构体,其结构体中的变量是我们要返回的数据,在DB.Raw方法中写我们的sql语句和占位符参数,通过Scan方法把sql返回的数据放入我们的结构体中,结构体的变量名称和sql返回的字段名一致 阅读全文
posted @ 2018-03-27 14:40 小白兔奶糖 阅读(7625) 评论(0) 推荐(0)
摘要:在主程序启动的时候开一个goroutine作为消费者,用管道连接生产者和消费者,消费者处于无限循环,从管道中获取channel传过来定时event 注意:channel在消费者创建的时候就连通生产者和消费者 结构图大体如上 消费者代码: 消费者处于无限循环,在循环中拿到Eventchan传过来的数据 阅读全文
posted @ 2018-03-27 14:28 小白兔奶糖 阅读(753) 评论(0) 推荐(0)
摘要:如果想知道当前的内存状态,可以使用: 如果需要在一个对象 obj 被从内存移除前执行一些特殊操作,比如写到日志文件中,可以通过如下方式调用函数来实现: runtime.SetFinalizer(obj, func(obj *typeObj)) func(obj *typeObj) 需要一个 type 阅读全文
posted @ 2018-03-15 12:27 小白兔奶糖 阅读(173) 评论(1) 推荐(0)
摘要:协程Coroutine 轻量级”线程“ 非抢占式多任务处理,由协程主动交出控制权(如果程序中间没有print,程序会一直霸占着调度器) 编译器/解释器/虚拟机层面的多任务 多个协程可能在一个或多个线程上运行 goroutine可能的切换点 1.I/O,select 2.channel 3.等待锁 4 阅读全文
posted @ 2018-03-13 11:43 小白兔奶糖 阅读(218) 评论(0) 推荐(0)
摘要:main函数入口 实现了两个接口 阅读全文
posted @ 2018-03-13 10:10 小白兔奶糖 阅读(212) 评论(0) 推荐(0)
摘要:duck typeing 隐式的实现接口的方法就等于实现了接口 main函数 实现接口一 实现接口二(拿下慕课网首页) Go语言里面有一个语法,可以直接判断是否是该类型的变量: value, ok= element.(T),这里value就是变量的值,ok是一个bool类型,element是inte 阅读全文
posted @ 2018-03-12 22:26 小白兔奶糖 阅读(146) 评论(0) 推荐(0)
摘要:go语言中首字母大写表示public go语言中首字母小写表示private 结构定义的方法必须放在同一个包内 一个目录只能放一个包 如何扩充系统的类型或别人的类型: 1.定义别名 2.使用组合 使用组合 目录结构: 入口:entry.go 函数体:node.go 定义别名 函数体:queue.go 阅读全文
posted @ 2018-03-12 18:05 小白兔奶糖 阅读(188) 评论(0) 推荐(0)
摘要:面向对象:go语言仅支持封装不支持继承和多态 所以go语言没有class,只有struct(结构体) 无论地址还是结构本身,一律用 . 来访问成员 go语言编译器可以自动区分是值传递还是指针传递,值传递不会改变原值,指针传递会复制指针地址 要改变内容必须使用指针接收者,结构过大也考虑用指针接收者,如 阅读全文
posted @ 2018-03-12 11:53 小白兔奶糖 阅读(186) 评论(0) 推荐(0)
摘要:rune相当于go的char 使用range遍历pos,rune对 使用utf8.RuneCountInString(s)获得字符数量 使用len获得字节长度,使用[]byte获得字节 一般把字节转成[]rune,更加容易操作 阅读全文
posted @ 2018-03-11 23:08 小白兔奶糖 阅读(1023) 评论(0) 推荐(1)
摘要:go语言中map使用哈希表,必须可以比较相等 除了slice,map,function的内建类型都可以作为key Struct类型不包括上述字段,也可作为key map中的key是无序的 阅读全文
posted @ 2018-03-11 22:34 小白兔奶糖 阅读(176) 评论(0) 推荐(0)
摘要:slice的操作 阅读全文
posted @ 2018-03-11 15:46 小白兔奶糖 阅读(190) 评论(0) 推荐(0)
摘要:go语言中数组是值类型 [10]int 和 [20]int 是不同类型,不能用作参数传递 调用func f(arr [10]int)会拷贝数组 go语言一般不用数组用切片slice 阅读全文
posted @ 2018-03-11 10:52 小白兔奶糖 阅读(103) 评论(0) 推荐(0)
摘要:值传递:相当于在内存中拷贝一分变量出来,拷贝变量的改变对原变量不影响 引用传递:直接引用内存中的变量,会被改变 c,c++值传递和引用传递都有 Java,python多用引用传递 go语言指针简单之处:不能运算 go语言只有值传递一种方式,go语言用值传递和指针的方式来模拟引用传递。(当用指针的时候 阅读全文
posted @ 2018-03-10 15:58 小白兔奶糖 阅读(140) 评论(0) 推荐(0)
摘要:函数语法要点 返回值类型写在最后面 可返回多个值 函数可作为参数 没有默认参数,可选参数,只有可变参数列表(...int) 闭包函数保存并积累其中的变量的值,不管外部函数退出与否,它都能够继续操作外部函数中的局部变量。 输出: 1 - 21 - 321 阅读全文
posted @ 2018-03-10 15:36 小白兔奶糖 阅读(160) 评论(0) 推荐(0)
摘要:以上是条件语句 if条件里可以定义变量 switch不需要break,也可以直接switch多个条件 以上是循环语法 for的条件里不需要括号,可以省略初始条件,结束条件,递增表达式(亦可以全部省略,为死循环) 阅读全文
posted @ 2018-03-10 14:24 小白兔奶糖 阅读(176) 评论(0) 推荐(0)
摘要:package main import ( "fmt" "math" ) //常量的数值可以作为各种类型使用 func consts(){ const filename = "abc.txt" //const a,b int= 3,4 常量可规定类型也可不规定 const a,b = 3,4 var c int c = int(math.Sqrt(float64(a * ... 阅读全文
posted @ 2018-03-10 12:32 小白兔奶糖 阅读(144) 评论(0) 推荐(0)
摘要:bool, string (u)int, (u)int8, (u)int16, (u)int32, (u)int64, uintptr (uintptr 是指针) byte, rune(表示字符char) float32, float64, complex64, complex128 (comple 阅读全文
posted @ 2018-03-10 12:06 小白兔奶糖 阅读(171) 评论(0) 推荐(0)
摘要:使用var关键字 var a,b,c var s1,s2 string= "hello","world" 可放在函数内,或可放在包内 可以用var()集中定义变量 编译器可以自动识别类型:var a,b,c,d =3,4,true,"def" 使用:=定义变量 a,b,c,d :=3,4,true, 阅读全文
posted @ 2018-03-10 11:35 小白兔奶糖 阅读(153) 评论(0) 推荐(0)
摘要:工厂模式概念:实例化对象,用工厂模式代替new操作 工厂模式包括工厂方法模式和抽象工厂模式 抽象工厂模式是工厂方法模式的扩展 工厂模式的意图:定义一个接口来创建对象,但让子类决定哪些类需要被实例化。 工厂方法把实例化的工作推迟到子类中去实现。 工厂方法模式类图 阅读全文
posted @ 2018-03-03 00:35 小白兔奶糖 阅读(188) 评论(0) 推荐(0)
摘要:public class Singleton2 { //1.将构造方式私有化,不允许外边直接创建对象 private Singleton2(){ } //2.声明类的唯一实例 private static Singleton2 instance; //3.提供一个获取实例的方法 public sta 阅读全文
posted @ 2018-03-02 16:54 小白兔奶糖 阅读(176) 评论(0) 推荐(0)