- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个结构:
type Name struct {
hexID string
age uint8
}
检查 hexID
字段是否为有效的十六进制字符串的最简单方法是什么?如果没有 - 则会出现错误。
例如:
var n Name
n.hexID = "Hello World >)" // not a valid hex
n.hexID = "aaa12Eb9990101010101112cC" // valid hex
或者也许某个地方存在 struct tag
?
最佳答案
迭代字符串的字符,并检查每个字符是否是有效的十六进制数字。
func isValidHex(s string) bool {
for _, r := range s {
if !(r >= '0' && r <= '9' || r >= 'a' && r <= 'f' || r >= 'A' && r <= 'F') {
return false
}
}
return true
}
测试它:
fmt.Println(isValidHex("Hello World >)"))
fmt.Println(isValidHex("aaa12Eb9990101010101112cC"))
输出(在 Go Playground 上尝试):
false
true
注意:您可能会想使用 hex.DecodeString()
并检查返回的错误:如果是nil
,则它是有效的。但请注意,此函数期望字符串具有偶数长度(因为它从十六进制数字生成字节,并且 2 个十六进制数字形成一个字节)。更不用说如果您不需要结果(作为字节 slice ),这会更慢并且会产生不必要的垃圾(供 gc 收集)。
另一个解决方案可以使用 big.Int.SetString()
:
func isValidHex(s string) bool {
_, ok := new(big.Int).SetString(s, 16)
return ok
}
这输出相同,请在 Go Playground 上尝试一下。但这又比较慢并且使用内存分配(生成垃圾)。
关于string - 戈兰 : verify that string is a valid hex string?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75157193/
我正在尝试阅读此内容:https://blog.golang.org/error-handling-and-go特别是标题为简化重复错误处理的部分。 他们像这样调用http.Handle: func
我正在尝试这个 Go 小例子 https://github.com/jakecoffman/golang-rest-bootstrap ,到目前为止一切顺利。 我正在尝试添加 CORS 以允许我的前端
我正在尝试编写一个基本的 http 服务器示例。我可以 curl localhost:8080,但无法通过客户端脚本使用 http.Get("127.0.0.1:8080") 联系服务器。我做错了什么
我有 - Go 作为监听器 http 和 https 到服务器。 Nginx 配置为处理传入的 http + https 请求。证件有序。使用单独的服务器可以完美地运行在 https 协议(proto
我有一个结构: type Name struct { hexID string age uint8 } 检查 hexID 字段是否为有效的十六进制字符串的最简单方法是什么?如果没有 -
我正在使用 gin 框架,当用户已经登录时,我将登录重定向到主页。它在主页上显示了这个 html 元素。 Found "." 如何从应用中禁用该元素? 这是我的应用代码。 func GetSignIn
我正在使用 gin 框架。我在主函数中像这样打开 sqlite 数据库 func main() { ... db, err := sql.Open("sqlite3", "./libreread.db
我正在尝试将 golang docker 部署到 AWS。 我使用预定义的 FROM golang:1.4.2-onbuild eb 本地运行 - 运行良好,没问题。 如果我压缩并上传 zip 文件,
我已经阅读了一些 questions关于 go 和 nginx 但我没有找到任何答案。 我认为(我不是专家)在 net/http go 服务器前使用 nginx 作为反向代理与直接使用 nginx 托
这个问题继续讨论开始 here 。我发现 HTTP 响应正文无法被解码为 JSON 对象,因为后者的 deflate 压缩。现在我想知道如何用Golang进行解压。我将不胜感激任何能够显示我的代码中的
我正在尝试编写一个代码,它对文件进行并发读取并将内容发布到一个 channel 。 Here是我的代码的链接,代码: func main() { bufferSize := int64(10)
软件环境:Win10,Goland。 去版本:go1.9.1 windows/amd64.协议(protocol)——版本:libprotoc 3.5.1当我执行命令时。结果如下 protoc -I
这是我尝试连接 SQL Server 时的代码: connString := fmt.Sprintf("server=%s;user id=%s;password=%s¡port=%s;databas
我是一名优秀的程序员,十分优秀!