Go 的泛型限制真是充满各种枷锁
2025 4 11 05:16 PM 0 条评论 19 次查看
Go 框架中,排第一的是 Fast HTTP,但是文档几乎没有,看了下如果要获取一个 query 参数,大概要这样写:
ctx.QueryArgs().Peek("foo")
。紧随其后的是 atreugo,写法也是类似:ctx.UserValue("foo").(string)
。都 2025 年了,连 Python 都不干这种硬编码字符串和手动类型转换的事了,没想到 Go 还在做。
をつあおにまで GFW!
2025 4 11 05:16 PM 0 条评论 19 次查看
ctx.QueryArgs().Peek("foo")
。紧随其后的是 atreugo,写法也是类似:ctx.UserValue("foo").(string)
。2023 3 24 05:22 PM 0 条评论 201 次查看
2022 11 1 06:49 PM 0 条评论 257 次查看
2022 10 31 04:36 PM 0 条评论 217 次查看
2022 10 26 12:35 PM 0 条评论 226 次查看
sync.(*Map).Store()
抛了个异常,日志如下:fatal error: sync: unlock of unlocked mutex
goroutine 63756060 [running]:
runtime.throw({0xbeeca9, 0xb45120})
#011/usr/local/go/src/runtime/panic.go:1198 +0x71 fp=0xc0010f13a0 sp=0xc0010f1370 pc=0x4336d1
sync.throw({0xbeeca9, 0xb2dd40})
#011/usr/local/go/src/runtime/panic.go:1184 +0x1e fp=0xc0010f13c0 sp=0xc0010f13a0 pc=0x45ecfe
sync.(*Mutex).unlockSlow(0x11d45a0, 0xffffffff)
#011/usr/local/go/src/sync/mutex.go:196 +0x3c fp=0xc0010f13e8 sp=0xc0010f13c0 pc=0x47851c
sync.(*Mutex).Unlock(...)
#011/usr/local/go/src/sync/mutex.go:190
sync.(*Map).Store(0x11d45a0, {0xae4960, 0xc0012f4350}, {0xae40e0, 0xc000026078})
#011/usr/local/go/src/sync/map.go:163 +0x465 fp=0xc0010f1480 sp=0xc0010f13e8 pc=0x476fa5
要知道这可是 Go 的官方库,sync.Map
可是专门为并发安全而设计的,难道直接调用它的接口也会出现线程冲突?2018 11 22 11:13 PM 3 条评论 1651 次查看
2015 1 14 06:40 PM 7 条评论 2877 次查看
2015 1 2 03:01 AM 5 条评论 2948 次查看
2009 11 11 12:28 PM 0 条评论 1494 次查看