随笔分类 - golang杂谈
摘要:异步协程 package main import ( "gopkg.in/gin-gonic/gin.v1" "time" "log" ) func main(){ // only set in Production // gin.SetMode(gin.ReleaseMode) router :=
阅读全文
摘要:一般情况使用 c.ShouldBindJSON c.ShouldBind 第二次读取 request body 的数据就会出现 EOF 的错误,因为 c.Request.Body 不可以重用 gin 1.4 之后官方提供了一个 ShouldBindBodyWith 的方法,可以支持重复绑定,原理就是
阅读全文
摘要:1:二维数组按照第一列大小排序 import ( "fmt" "sort" ) func main() { interval := [][]int{ {2,3}, {2,2}, {3,3}, {1,3}, {5,7}, {2,2}, {4,6}, } sort.Slice(interval, fun
阅读全文
摘要:闭包=函数+外层变量的引用 recover必须搭配defer使用 defer一定要在可能引发panic的语句之前定义
阅读全文
摘要:byte 等同于int8,常用来处理ascii字符 rune等同于int32,rune 只是 int32的别名,常用来处理unicode或utf-8字符//可以处理中文 在使用上,rune能处理一切的字符,而byte仅仅局限在ascii unicode:统一码,也叫万国码,是为了解决传统的字符编码方
阅读全文
摘要:go语言初始化结构体指针 head:=&ListNode{} 或者 head:=new(ListNode)
阅读全文
摘要:‘…’ 其实是go的一种语法糖。 它的第一个用法主要是用于函数有多个不定参数的情况,可以接受多个不确定数量的参数。 第二个用法是slice可以被打散进行传递。 下面直接上例子: func test1(args ...string) { //可以接受任意个string参数 for _, v:= ran
阅读全文
摘要:内存对齐 为保证程序顺利高效的运行,编译器会把各种类型的数据安排到合适的地址并占用合适的长度,这就是内存对齐 每种类型的对齐值就是他的内存边界 64位 类型对齐边界 (对齐值)int81byteint162byteint324byteint648bytestring8byte 32位 类型对齐边界(
阅读全文
摘要:gomail是一个第三方库,可以发送邮件 安装:go get -u github.com/go-gomail/gomail 使用示例: m := gomail.NewMessage() m.SetHeader("From", "473172339@qq.com")//发送者 m.SetHeader(
阅读全文
摘要:go语言为什么空切片,nil切片可以继续使用? 首先先说明下什么是空切片?什么是nil切片? 通过var a [ ]int创建的切片是一个nil切片 通过b:=make([]int,0)创建的是一个空切片,(底层数组为空,但底层数组指针非空) 问题: 在之前一直认为切片必须要初始化才可以使用,今天刷
阅读全文