2 Star 3 Fork 2

sreeb / gisk

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
variate.go 1004 Bytes
一键复制 编辑 原始数据 按行查看 历史
sreeb 提交于 2024-04-11 14:06 . first
package gisk
type Variate struct {
Key string `json:"key" yaml:"key"` //唯一标识
Name string `json:"name" yaml:"name"` //变量名称
Desc string `json:"desc" yaml:"desc"` //描述
Version string `json:"version" yaml:"version"` //版本
ValueType ValueType `json:"value_type" yaml:"value_type"` //值类型
Default interface{} `json:"default" yaml:"default"` //默认值
IsInput bool `json:"is_input" yaml:"is_input"` //是否要从输入值中匹配
}
func (variate *Variate) Parse(gisk *Gisk) (Value Value, err error) {
if Value, ok := gisk.Context.GetVariate(variate.Key); ok {
return Value, nil
}
v := variate.Default
if variate.IsInput {
if input, ok := gisk.Input[variate.Key]; ok {
v = input
}
}
value, err := ConvertValueType(v, variate.ValueType)
Value.ValueType = variate.ValueType
Value.Value = value
gisk.Context.SetVariate(variate.Key, Value)
return
}
Go
1
https://gitee.com/sreeb/gisk.git
git@gitee.com:sreeb/gisk.git
sreeb
gisk
gisk
81554a20491c

搜索帮助