问题标签 [go-playground]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
validation - 如何使用 Golang go-playground/validator 将验证链接在一起?
我正在使用https://github.com/go-playground/validator作为 REST API 服务器。我对具有不同验证要求的不同端点使用相同的结构。例如,/users/login
只需要email
和password
。但是,要创建用户,firstName
需要更多信息。
所以我觉得用struct tag来验证不是很方便。如本例中所述检查变量似乎更合适。但是我遇到了两个问题:
我同时检查多个。有没有办法将一系列验证链接在一起?检查结构中的每个变量,然后检查错误,这使得编码和阅读变得更加困难。
错误对象确实是空的。例如,检查是否需要电子邮件仅显示
err.Tag()
anderr.ActualTag()
asrequired
和err.Kind()
anderr.Type()
asstring
而没有其他内容。验证器是否提供任何使这更方便的东西?
go - 使用通道退出永远循环 - Go Playground 的问题
我正在尝试实现一个简单的逻辑,其中Producer将数据发送到ch
具有永久for
循环的通道,而 Consumer 从通道读取ch
。
Producer 在通道上接收到信号时停止生产并退出永久循环quit
。
代码是这样的(另见这个游乐场)
如果我在我的机器(一台 4 核的 Mac)上运行这段代码,一切正常。如果我在Go Playgroud上尝试相同的代码,它总是会超时。我猜这是因为 Go Playground 是单核,因此无限循环不会给其他 goroutine 运行的机会,但是我不明白为什么该指令runtime.Gosched()
没有任何效果。
只是为了完成我所看到的图片,如果我GOMAXPROCS=1
在我的 Mac 上设置,该程序仍然可以正常工作并按预期退出。如果我GOMAXPROCS=1
在我的 Mac 上设置并删除runtime.Gosched()
指令,行为会变得脆弱:有时程序会按预期终止,有时它似乎永远不会退出无限循环。
go - 使用 goplayground 验证器库验证结构数组
如何使用验证器框架验证多个结构。例如,如果一个男人有小狗。我想验证小狗的名字是否是阿尔法。如果它是一个,那么我可以做到,如果是一群小狗呢? https://play.golang.org/p/9-1Ih76hD7j 不适用于 dongs 数组。 https://play.golang.org/p/PGQT3jaFVuS 正在工作 - 只有一只狗。
我想验证结构数组,我们可以使用 goplayground 验证器框架吗?
go - net/http 在 Go Playground 中不起作用
有人可以解释我做错了什么。所以基本上我正在尝试发出一个简单的 HTTPGET
请求。我从https://gobyexample.com/http-clients复制了代码。当我在本地运行它时,一切正常,但在 go playground https://play.golang.org/p/-28ykONUD98它给出:
恐慌:获取“http://gobyexample.com”:拨打 tcp:在 169.254.169.254:53 上查找 gobyexample.com:拨打 udp 169.254.169.254:53:连接:没有到主机的路由
goroutine 1 [运行]: main.main() /tmp/sandbox181131075/prog.go:13 +0x345
程序退出:状态 2。
go - 如何使用自定义验证器验证结构数据类型?
我go-playground/validator/v10
用来验证一些输入并且在使用自定义验证标签和函数时遇到了一些问题。问题是当结构字段之一是不同的结构时,不会调用该函数。这是一个例子:
如果我将 parentStruct 更改为:
一切正常。但是,如果我将validate:"myValidate"
部件添加到 ChildStruct 它也可以工作,那么返回的错误是说 ChildStruct.Value 是错误的,而它应该说 ParentStruct.Child 是错误的。
有人知道我在做什么错吗?
go - 关闭停止通道不会停止 goroutines
介绍:
我刚刚开始学习 Go 语言,并且已经上过关于并发的课程。
我为自己发明了一个小任务来尝试实现我所学到的关于关闭 goroutines 的知识。
问题:
如果我们关闭通道,case
它将始终在select
语句中被选中,这是向所有 goroutine 广播取消信号的好方法。
下面我有 2 个 goroutine 和一个quit
永远不会收到的频道。
Playground上的代码超时。
default
如果我在 goroutines 中注释掉部分,那么quit
就会收到信号。
问题:
尽管我正在尝试,但我真的不明白为什么会发生这种情况以及如何解决它。
有人可以解释一下是什么问题并就如何解决它提供一些建议吗?
go - 关闭 vscode-go:playground 时代码会被删除吗?
我在 vscode 中开发时不小心点击了“go run on go playground”。既然是公司代码,我想知道代码是否会被删除。
go - 如何使用验证器在 golang gin 中执行参数类型检查?
我有一个像这样的验证器结构
并像下面一样使用它
并像这样格式化我的错误
但问题是当我上传文件InputKey
或Permission
字段时,我不会validator.ValidationErrors
按预期获得。
就像杜松子酒将这种情况视为其他类型的错误一样。
如何执行参数类型检查并仍然使用原始代码结构?