我在Golang中使用iota定义了以下类型。
type StatusType int
const (
PENDING StatusType = iota
APPROVED
REJECTED
)
我想将REST-API中传递的值限制为statusType。使得该值不应超过0,1,2。
我是这样做的:
首先创建一个名为“StatusType”的包(在名为StatusType的文件夹中):
文件名:$gopath/enum/StatusType/StatusType.go
package StatusType
type Int int
const (
Pending Int = iota
Approved
Rejected
end
)
func IsValid(value int) bool {
return value < int(end)
}
并按如下方式使用($gopath/enum/main.go):
package main
import (
"enum/StatusType"
"fmt"
)
func Test(enum StatusType.Int) {
fmt.Println(enum) //1
}
func main() {
Test(StatusType.Approved)
fmt.Println(StatusType.IsValid(1)) //true
fmt.Println(StatusType.IsValid(10)) //false
}
StatusType包只导出您需要的内容,因此不需要根据iota const范围进行检查。
为了便于检查,可以使用:StatusType.isvalid()
并且StatusType包的优点是:
当您需要StatusType类型的函数参数时,可以使用StatusType.int,它显示它是int类型的枚举。
类似:
Test(StatusType.Approved)
问题内容: 我需要检查值是否为整数。我发现了这一点:如何检查输入值是整数还是浮点数?,但如果我没记错的话,即使 值 本身确实是,变量仍然是类型。 问题答案: 如果输入值可以是整数以外的其他数字形式,请按 如果传递字符串值, 请使用,请确保在转换失败的情况下使用try catch进行错误处理。
问题内容: 我看到在MySQL中,有和函数可以从值创建整数,但是有什么方法可以检查值是否是整数?我正在寻找PHP中类似的东西。 问题答案: 我假设您要检查一个字符串值。一种不错的方法是REGEXP运算符,将字符串与正则表达式匹配。简单地做 这相当快。如果您的字段是数字,则只需测试 代替。
问题内容: 在Python Pandas中,检查DataFrame是否具有一个(或多个)NaN值的最佳方法是什么? 我知道函数,但是这会为每个元素返回一个布尔值的DataFrame。此处的帖子也无法完全回答我的问题。 问题答案: jwilner的反应是现场的。我一直在探索是否有更快的选择,因为根据我的经验,求平面数组的总和(奇怪)比计数快。这段代码似乎更快: 速度稍慢,但当然还有其他信息-的数量。
问题内容: 我有一列包含数字和其他字符串值(例如“?”,“ ???”等) 是否可以在SQLite的where子句中添加“ is number”条件?就像是: 问题答案: 从文档中, typeof(X)函数返回一个字符串,该字符串指示表达式X的数据类型:“ null”,“ integer”,“ real”,“ text”或“ blob”。 您可以使用
在Python Pandas中,检查DataFrame是否有一个(或多个)NaN值的最佳方法是什么? 我知道函数,但它为每个元素返回布尔值的数据集。这里的这篇文章也没有完全回答我的问题。
问题内容: 我试图找到最大的立方根,即整数,小于12,000。 我不确定如何检查它是否是整数!我可以将其转换为字符串,然后使用索引来检查最终值,看看它们是否为零,但这似乎很麻烦。有没有更简单的方法? 问题答案: 要检查浮点值是否为整数,请使用以下方法: 该方法已添加到Python 2.6中的类型中。 请考虑在Python 2中为(整数操作数的底数除法!),并且浮点算术可能不精确(a是使用二进制分数