string - 使字段仅允许某些字符串
问题描述
我有一个带有可用性字段的类型,它可以是三个值之一,“可用”,“不可用”,两者都不是。
type Something struct {
Name string `json:"Name" yaml:"name"`
status string `json:"-" yaml:"status"`
}
该类型是从一个 yaml 构建的,它可以具有如下输入:
- name: "standard_thing"
status: "standard"
- name: "premium_thing"
status: "premium"
- name: "random_thing
我正在尝试考虑拥有此状态字段的最佳方式,因此很明显有两个选项或空白。使用布尔值不起作用,因为可以通过这种方式区分没有状态的对象,实际上我特别希望该字段是可选的,因此元素匹配不会在没有该字段的现有条目上中断分贝。
真正做到这一点的唯一方法是使用字符串,然后对字符串进行某种验证。还是使用带有几个布尔值的不同状态类型更好,尽管在 yaml 中看起来很乱,可能是布尔指针或以某种方式别名布尔值?有没有办法使用可以作为字符串输入的枚举来处理该验证?我想做类似的事情
type status string
const (
premium status = "premium"
standard status = "standard"
)
要锁定两个输入字符串,我知道上面的方法不起作用,但想知道是否有一些惯用的方式来提供 YAML 不需要数字输入的字符串选项/枚举?
解决方案
推荐阅读
- python - 如何根据每个组中其他列 pandas 的先前值编辑 1 列的值
- java - 在 Hibernate 实体中使主键与外键相同
- airflow - 如何使用 Airflow 将 sql 输出存储到 pandas 数据框?
- php - Laravel WhereNotNull 总是缺少数据
- javascript - 使用该特定字段周围的红色边框对空字符串进行表单验证检查
- python - 使用 Rotnet 和 Python 预测图像天使
- can-bus - 未使用的字节是否设置为零以响应 SDO 读取?
- java - 如何提升将多个图像从网络加载到 ImageViews
- javascript - 如何修复未捕获的 ReferenceError:未定义要求
- python - Python 相当于 MATLAB 中的“bwarea”