加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
utils.go 1.07 KB
一键复制 编辑 原始数据 按行查看 历史
astaxie 提交于 2015-04-13 23:20 . support := json format
package main
import (
"strconv"
"strings"
)
func inSlice(str string, l []string) bool {
for i := range l {
if l[i] == str {
return true
}
}
return false
}
func toRealType(str string) interface{} {
if i, err := isint(str); err == nil {
return i
}
if b, err := isbool(str); err == nil {
return b
}
if f, err := isfloat(str); err == nil {
return f
}
if strings.HasPrefix(str, "[") && strings.HasSuffix(str, "]") {
bstr := []byte(str)
strs := strings.Split(string(bstr[1:len(bstr)-1]), ",")
var r []interface{}
for _, s := range strs {
if i, err := isint(s); err == nil {
r = append(r, i)
continue
}
if i, err := isbool(s); err == nil {
r = append(r, i)
continue
}
if i, err := isfloat(s); err == nil {
r = append(r, i)
continue
}
r = append(r, strings.Trim(s, "\"' "))
}
return r
}
return str
}
func isint(v string) (i int, err error) {
return strconv.Atoi(v)
}
func isbool(v string) (bool, error) {
return strconv.ParseBool(v)
}
func isfloat(v string) (float64, error) {
return strconv.ParseFloat(v, 64)
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化