V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  yiplee  ›  全部回复第 3 页 / 共 13 页
回复总数  254
1  2  3  4  5  6  7  8  9  10 ... 13  
2020-07-24 11:13:51 +08:00
回复了 vhysug01 创建的主题 Go 编程语言 请教大佬, go 如何根据变量名获取该变量的数据
2020-07-24 11:10:36 +08:00
回复了 vhysug01 创建的主题 Go 编程语言 请教大佬, go 如何根据变量名获取该变量的数据
不知道为啥 md 格式没生效啊
2020-07-24 11:10:01 +08:00
回复了 vhysug01 创建的主题 Go 编程语言 请教大佬, go 如何根据变量名获取该变量的数据
可以用 stringer 自动生成,举个例子

安装 stringer

```shell
go get -u -a golang.org/x/tools/cmd/stringer
```

**permission.go**

```golang
package core

import (
"sort"
"strings"
)

//go:generate stringer --type Permission

type Permission int

const (
A Permission = iota
B
C
D
E
F
)

func PermissionFromName(p string) (Permission, bool) {
idx := strings.Index(_Permission_name, p)
if idx < 0 {
return 0, false
}

pos := sort.Search(len(_Permission_index), func(i int) bool {
return _Permission_index[i] >= uint8(idx)
})

return Permission(pos), true
}
```

执行 go generate

```shell
go generate ./...
```

生成 **permission_string.go** 文件

```golang
// Code generated by "stringer --type Permission"; DO NOT EDIT.

package core

import "strconv"

func _() {
// An "invalid array index" compiler error signifies that the constant values have changed.
// Re-run the stringer command to generate them again.
var x [1]struct{}
_ = x[A-0]
_ = x[B-1]
_ = x[C-2]
_ = x[D-3]
_ = x[E-4]
_ = x[F-5]
}

const _Permission_name = "ABCDEF"

var _Permission_index = [...]uint8{0, 1, 2, 3, 4, 5, 6}

func (i Permission) String() string {
if i < 0 || i >= Permission(len(_Permission_index)-1) {
return "Permission(" + strconv.FormatInt(int64(i), 10) + ")"
}
return _Permission_name[_Permission_index[i]:_Permission_index[i+1]]
}
```

最后,可以使用 Permission.String() 方法将 enum 转成 string,也可以用 PermissionFromName() 转回来。enum 有变动的时候,重新执行一下 go generate 重新生成代码即可。
不错,很赞
2020-06-10 11:11:55 +08:00
回复了 wbofeng 创建的主题 Go 编程语言 Beego 再出发
gin 我都觉得重了,现在在用 https://github.com/go-chi/chi
2020-05-09 10:26:54 +08:00
回复了 JustSong 创建的主题 Go 编程语言 请教一个有关 gin 返回包含未知属性的嵌套 JSON 的问题
用 json.RawMessage 就好了转 map 是浪费

```go
c.JSON( http.StatusOK, gin.H{
"message": "ok",
"data": json.RawMessage(data.Data),
})
```
来了
2020-04-28 11:59:45 +08:00
回复了 insert000 创建的主题 Go 编程语言 请教一个循环创建 goroutine 的输出卡住问题
@insert000 #2 是否消费完,得看生产那边什么时候 close 。消费这边也可以加一个超时,多长时间没来新得就不等了
2020-04-28 10:19:38 +08:00
回复了 insert000 创建的主题 Go 编程语言 请教一个循环创建 goroutine 的输出卡住问题
deadlock 的原因是

```golang
for v := range res {
fmt.Println(v)
}
```

这里在一直消费 res,消费了三次之后消费完了就一直等待了,程序卡死在这。
一直在用 chi/middleware 里面的 compress,楼主这个也不错
2020-04-21 10:22:12 +08:00
回复了 mikemintang 创建的主题 Go 编程语言 基于「Hugo」搭建个人博客网站
我也是用的 hugo,部署在 cloudflare worker 上面
2020-04-20 11:42:16 +08:00
回复了 trepwq 创建的主题 电动汽车 model3 据说又双叒叕降价了,最低 22w
辅助驾驶单独付费解锁,五万左右
2020-02-13 17:37:07 +08:00
回复了 astaxie 创建的主题 Go 编程语言 GopherChina 社区全新改版
新版本好看很多
2020-01-09 21:59:13 +08:00
回复了 szzhiyang 创建的主题 Go 编程语言 [Go 语言] 目前最好的 Web 框架和 ORM 库是?
go-chi/chi + jmoiron/sqlx
Z3VveWlubEBnbWFpbC5jb20K 拉一把
2019-10-11 13:28:46 +08:00
回复了 ydatong 创建的主题 问与答 求推荐双肩包,上下班背,主要装 15 寸 mbp
刚用招行行用卡积分兑换了一个包
2019-10-09 19:37:59 +08:00
回复了 stcasshern 创建的主题 问与答 30+W 本金,如何理财,稳定为主
可以看看《小狗钱钱》这本讲理财的书哈哈
2019-10-09 15:54:50 +08:00
回复了 dhairoot 创建的主题 程序员 怎么克服学习 Go 时的恶心感觉,语法太奇怪了
Go 开发很多都是从 Java 转过来的
1  2  3  4  5  6  7  8  9  10 ... 13  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1426 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 34ms · UTC 17:18 · PVG 01:18 · LAX 10:18 · JFK 13:18
Developed with CodeLauncher
♥ Do have faith in what you're doing.