09 2020 档案
GO语言不要用共享内存来通信,要用通信来共享内存
摘要:这句话是推荐使用channel来实现 "让同一块内存在同一时间内只被一个线程操作" 的目的 先看一个简单的示例代码 package main import ( "fmt" "net/http" ) var j int func HelloServer(w http.ResponseWriter, r 阅读全文
posted @ 2020-09-29 20:34 longzhankunlun 阅读(975) 评论(0) 推荐(0)
iris basicauth过期时间不起作用
摘要:github.com/kataras/iris/v12 修改basicauth.go package basicauth // test file: ../../_examples/authentication/basicauth/main_test.go import ( "encoding/ba 阅读全文
posted @ 2020-09-22 00:27 longzhankunlun 阅读(336) 评论(0) 推荐(0)
golang iris小坑
摘要:访问/pulibc路径 如果controller中定义了GetPublic方法,会执行这个方法,否则会被当做访问静态文件/public/index.html处理 阅读全文
posted @ 2020-09-21 09:35 longzhankunlun
go iris简易mvc模型
摘要:datamodels/user.go package datamodels type User struct { UserId int64 `json:"user_id" xorm:"not null pk autoincr BIGINT(20)"` Name string `json:"name" 阅读全文
posted @ 2020-09-21 00:11 longzhankunlun 阅读(669) 评论(0) 推荐(0)
go iris分组路由和中间件
摘要:package main import ( "github.com/kataras/iris/v12" ) func main() { // 1.创建实例 app := iris.New() // 2.设置错误等级 //app.Logger().SetLevel("debug") // 3.注册模板 阅读全文
posted @ 2020-09-20 15:34 longzhankunlun 阅读(1101) 评论(0) 推荐(0)
golang中[]string和...string
摘要:[]string 是字符串切片 ...string用作参数 ...参数语法形成了可变参数的参数。它将接受零个或多个string参数,并将它们作为切片引用 func f(args ...string) { fmt.Println(args) } func main() { args := []stri 阅读全文
posted @ 2020-09-15 14:02 longzhankunlun 阅读(5089) 评论(0) 推荐(0)
go xorm 咸鱼笔记
摘要:Update的时候,如果用到MustCols,则MustCols里面的字段必须更新,如果初始化结构体没有给该字段赋值,那么将会把nil值强制更新上去 func (d *GiftDao) Delete(id int64) error { data := &models.User{Balance: 1, 阅读全文
posted @ 2020-09-15 13:22 longzhankunlun 阅读(320) 评论(0) 推荐(0)
mysql记录历史sql语句
摘要:查看是否开启日志记录 SHOW VARIABLES LIKE "%general_log%; 如果没有开启,则开启日志记录,设置为OFF为关闭日志记录 SET GLOBAL general_log = 'ON'; 查看日志记录的路径 show variables like 'general_log_ 阅读全文
posted @ 2020-09-15 00:19 longzhankunlun 阅读(350) 评论(0) 推荐(0)
go xorm cmd工具生成go代码
摘要:如果没有go-sql-driver/mysql就先安装 go get -u github.com/go-sql-driver/mysql 安装xorm,在cmd命令行下 go get github.com/go-xorm/xorm 再安装xorm的cmd命令工具 go get github.com/ 阅读全文
posted @ 2020-09-13 23:48 longzhankunlun 阅读(628) 评论(0) 推荐(1)
golang队列任务处理
摘要:单任务队列耗时 package main import ( "crypto/rand" "fmt" "math/big" "strconv" "strings" "sync" "time" ) type task struct { id uint32 // callback chan int } v 阅读全文
posted @ 2020-09-12 17:28 longzhankunlun 阅读(1185) 评论(0) 推荐(0)
golang map与sync.Map新手小坑
摘要:package main import "sync" var sm sync.Map var sm1 *sync.Map var m map[int]string func main() { sm.Store(1, "xixi") sm1.Store(1, "xixi") // 此处因为没有分配内存 阅读全文
posted @ 2020-09-12 10:01 longzhankunlun
golang 生成随机数
摘要:import "math/rand" func luckyCode() int32 { seed := time.Now().UnixNano() // rand内部运算的随机数 code := rand.New(rand.NewSource(seed)).Int31n(int32(rateMax) 阅读全文
posted @ 2020-09-10 08:02 longzhankunlun 阅读(2041) 评论(0) 推荐(0)
golang的mysql基本操作
摘要:package main import ( "database/sql" "fmt" //"log" "strconv" "sync" _ "github.com/go-sql-driver/mysql" ) var ( dbConn *sql.DB err error ) type SimpleS 阅读全文
posted @ 2020-09-08 11:39 longzhankunlun 阅读(194) 评论(0) 推荐(0)
访问golang webserver会触发两次handler
摘要:谷歌浏览器会触发两次Handler package main import ( "io" "net/http" "strconv" ) var count int = 0 // handler func firstPage(w http.ResponseWriter, r *http.Request 阅读全文
posted @ 2020-09-08 00:27 longzhankunlun 阅读(398) 评论(0) 推荐(0)
golang线程安全与互斥锁
摘要:在高并发下或多goroutine同时执行下,可能会同时读写同一块内存 Golang乐观锁和悲观锁 修改一个数值的步骤: ①把想修改的数值从某个地方取出来 ②在取出来的数值修改为期望值 ③把修改后的数值保存到原来的地方 可能存在的问题: 如果两个goroutine同时执行修改数值的步骤,都要进行第③步 阅读全文
posted @ 2020-09-08 00:13 longzhankunlun 阅读(1042) 评论(0) 推荐(0)
golang for select break小坑
摘要:package main import "fmt" import "log" func main() { fmt.Println(test()) } func test() bool { ch := make(chan int,30) for i := 0; i < 30; i++ { ch <- 阅读全文
posted @ 2020-09-03 10:31 longzhankunlun 阅读(1108) 评论(0) 推荐(0)