本文整理汇总了Golang中github.com/spf13/cast.ToBool函数的典型用法代码示例。如果您正苦于以下问题:Golang ToBool函数的具体用法?Golang ToBool怎么用?Golang ToBool使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了ToBool函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: newColumnDefinition
func newColumnDefinition(column map[string]interface{}, order DataTableOrder) *ColumnDefinition {
return &ColumnDefinition{
Name: column["data"].(string),
Searchable: cast.ToBool(column["searchable"]),
Orderable: cast.ToBool(column["orderable"]),
Order: order,
Search: newSearchDefinition(column["search"].(map[string]interface{})),
}
}
开发者ID:RobinUS2,项目名称:indispenso,代码行数:9,代码来源:core.go
示例2: Get
// Get returns an interface..
// Must be typecast or used by something that will typecast
func (manager *Config) Get(key string) interface{} {
jww.TRACE.Println("Looking for", key)
v := manager.Find(key)
if v == nil {
return nil
}
jww.TRACE.Println("Found value", v)
switch v.(type) {
case bool:
return cast.ToBool(v)
case string:
return cast.ToString(v)
case int64, int32, int16, int8, int:
return cast.ToInt(v)
case float64, float32:
return cast.ToFloat64(v)
case time.Time:
return cast.ToTime(v)
case []string:
return v
}
return v
}
开发者ID:MightyE,项目名称:confer,代码行数:28,代码来源:confer.go
示例3: Get
func (v *Viper) Get(key string) interface{} {
key = strings.ToLower(key)
val := v.find(key)
if val == nil {
return nil
}
switch val.(type) {
case bool:
return cast.ToBool(val)
case string:
return cast.ToString(val)
case int64, int32, int16, int8, int:
return cast.ToInt(val)
case float64, float32:
return cast.ToFloat64(val)
case time.Time:
return cast.ToTime(val)
case time.Duration:
return cast.ToDuration(val)
case []string:
return val
}
return val
}
开发者ID:pandemicsyn,项目名称:stalker,代码行数:26,代码来源:viper.go
示例4: getParam
func (p *Page) getParam(key string, stringToLower bool) interface{} {
v := p.Params[strings.ToLower(key)]
if v == nil {
return nil
}
switch v.(type) {
case bool:
return cast.ToBool(v)
case string:
if stringToLower {
return strings.ToLower(cast.ToString(v))
}
return cast.ToString(v)
case int64, int32, int16, int8, int:
return cast.ToInt(v)
case float64, float32:
return cast.ToFloat64(v)
case time.Time:
return cast.ToTime(v)
case []string:
if stringToLower {
return helpers.SliceToLower(v.([]string))
}
return v.([]string)
case map[string]interface{}: // JSON and TOML
return v
case map[interface{}]interface{}: // YAML
return v
}
jww.ERROR.Printf("GetParam(\"%s\"): Unknown type %s\n", key, reflect.TypeOf(v))
return nil
}
开发者ID:JTrembl1,项目名称:hugo,代码行数:35,代码来源:page.go
示例5: Get
func (v *Viper) Get(key string) interface{} {
lcaseKey := strings.ToLower(key)
val := v.find(lcaseKey)
if val == nil {
return nil
}
valType := val
if v.typeByDefValue {
// TODO(bep) this branch isn't covered by a single test.
path := strings.Split(lcaseKey, v.keyDelim)
defVal := v.searchMap(v.defaults, path)
if defVal != nil {
valType = defVal
}
}
switch valType.(type) {
case bool:
return cast.ToBool(val)
case string:
return cast.ToString(val)
case int64, int32, int16, int8, int:
return cast.ToInt(val)
case float64, float32:
return cast.ToFloat64(val)
case time.Time:
return cast.ToTime(val)
case time.Duration:
return cast.ToDuration(val)
case []string:
return cast.ToStringSlice(val)
}
return val
}
开发者ID:luizbafilho,项目名称:fusis,代码行数:35,代码来源:viper.go
示例6: ShouldGzip
func (c *Config) ShouldGzip(contentType string) bool {
mediaType, _, _ := mime.ParseMediaType(contentType)
if mediaType != "" {
return cast.ToBool(c.gzipPatterns.get(mediaType))
}
return false
}
开发者ID:michaeldwan,项目名称:static,代码行数:7,代码来源:config.go
示例7: Get
// Get can retrieve any value given the key to use
// Get returns an interface. For a specific value use one of the Get____ methods.
func (c RawConfig) Get(key string) interface{} {
path := strings.Split(key, keyDelim)
val := c.find(strings.ToLower(key))
if val == nil {
source := c.find(path[0])
if source == nil {
return nil
}
if reflect.TypeOf(source).Kind() == reflect.Map {
val = c.searchMap(cast.ToStringMap(source), path[1:])
}
}
switch val.(type) {
case bool:
return cast.ToBool(val)
case string:
return cast.ToString(val)
case int64, int32, int16, int8, int:
return cast.ToInt(val)
case float64, float32:
return cast.ToFloat64(val)
case time.Time:
return cast.ToTime(val)
case time.Duration:
return cast.ToDuration(val)
case []string:
return val
}
return val
}
开发者ID:mefellows,项目名称:parity,代码行数:36,代码来源:config.go
示例8: Get
func (v *Viper) Get(key string) interface{} {
path := strings.Split(key, v.keyDelim)
var val interface{}
lcaseKey := strings.ToLower(key)
source := v.find(path[0])
if source != nil {
if reflect.TypeOf(source).Kind() == reflect.Map {
val = v.searchMap(cast.ToStringMap(source), path[1:])
}
}
if val == nil {
val = v.find(lcaseKey)
}
if val == nil {
return nil
}
var valType interface{}
if !v.typeByDefValue {
valType = val
} else {
defVal, defExists := v.defaults[lcaseKey]
if defExists {
valType = defVal
} else {
valType = val
}
}
switch valType.(type) {
case bool:
return cast.ToBool(val)
case string:
return cast.ToString(val)
case int64, int32, int16, int8, int:
return cast.ToInt(val)
case float64, float32:
return cast.ToFloat64(val)
case time.Time:
return cast.ToTime(val)
case time.Duration:
return cast.ToDuration(val)
case []string:
return cast.ToStringSlice(val)
}
return val
}
开发者ID:DLag,项目名称:viper,代码行数:50,代码来源:viper.go
示例9: BindPFlag
func (v *Viper) BindPFlag(key string, flag *pflag.Flag) (err error) {
if flag == nil {
return fmt.Errorf("flag for %q is nil", key)
}
v.pflags[strings.ToLower(key)] = flag
switch flag.Value.Type() {
case "int", "int8", "int16", "int32", "int64":
SetDefault(key, cast.ToInt(flag.Value.String()))
case "bool":
SetDefault(key, cast.ToBool(flag.Value.String()))
default:
SetDefault(key, flag.Value.String())
}
return nil
}
开发者ID:pandemicsyn,项目名称:stalker,代码行数:16,代码来源:viper.go
示例10: TestCast
func (suite *GitConfigTestSuite) TestCast() {
assert := assert.New(suite.T())
hostsRaw := viper.Get("git.hosts")
//fmt.Println(hostsRaw)
hostsSlice := cast.ToSlice(hostsRaw)
//fmt.Println(hostsSlice)
for _, host := range hostsSlice {
hostMap := cast.ToStringMap(host)
name := cast.ToString(hostMap["name"])
https := cast.ToBool(hostMap["https"])
if name == "git.saber.io" {
assert.Equal(false, https)
}
}
}
开发者ID:dyweb,项目名称:Ayi,代码行数:16,代码来源:config_test.go
示例11: PutUser
// Modify user
func PutUser(w http.ResponseWriter, r *http.Request, ps httprouter.Params) {
jr := jresp.NewJsonResp()
if !authUser(r) {
jr.Error("User not authorized for Change User")
fmt.Fprint(w, jr.ToString(conf.Debug))
return
}
admin := getUser(r)
if !admin.HasRole("admin") {
jr.Error("User not allowed to Change User")
fmt.Fprint(w, jr.ToString(conf.Debug))
return
}
// Verify two factor for change user
if res, _ := admin.ValidateTotp(r.PostFormValue("token")); res == false {
jr.Error("Invalid two factor token")
fmt.Fprint(w, jr.ToString(conf.Debug))
return
}
// Username
username := r.PostFormValue("username")
user := server.userStore.ByName(username)
if user == nil {
jr.Error("Cannot find user to modify")
fmt.Fprint(w, jr.ToString(conf.Debug))
return
}
for key, _ := range r.PostForm {
switch key {
case "enable":
user.Enabled = cast.ToBool(r.PostFormValue(key))
case "username", "token":
continue
default:
jr.Error("Invalid change request")
fmt.Fprint(w, jr.ToString(conf.Debug))
return
}
}
server.userStore.save()
jr.Set("changed", true)
jr.OK()
fmt.Fprint(w, jr.ToString(conf.Debug))
}
开发者ID:RobinUS2,项目名称:indispenso,代码行数:48,代码来源:server.go
示例12: BindPFlag
// Binds a configuration key to a command line flag:
// pflag.Int("port", 8080, "The best alternative port")
// confer.BindPFlag("port", pflag.Lookup("port"))
func (manager *Config) BindPFlag(key string, flag *pflag.Flag) (err error) {
if flag == nil {
return fmt.Errorf("flag for %q is nil", key)
}
manager.pflags.Set(key, flag)
switch flag.Value.Type() {
case "int", "int8", "int16", "int32", "int64":
manager.SetDefault(key, cast.ToInt(flag.Value.String()))
case "bool":
manager.SetDefault(key, cast.ToBool(flag.Value.String()))
default:
manager.SetDefault(key, flag.Value.String())
}
return nil
}
开发者ID:MightyE,项目名称:confer,代码行数:20,代码来源:confer.go
示例13: loadGzip
func (c *Config) loadGzip(seq sequence) error {
c.gzipPatterns = newGlobList(false)
el, ok := seq.elForKey("gzip")
if !ok {
return nil
}
if cast.ToBool(el.value) {
// el.value == `true`, load defaults
return c.loadGzipValues(defaultCompressableMimeTypes)
} else if list := el.stringSliceForSeqValues(); len(list) > 0 {
// el.value == string sequence
return c.loadGzipValues(list)
} else if len(el.value) > 0 {
// el.value == string
return c.loadGzipValues([]string{el.value})
}
return nil
}
开发者ID:michaeldwan,项目名称:static,代码行数:18,代码来源:config.go
示例14: BindPFlags
func (v *Viper) BindPFlags(flags *pflag.FlagSet) (err error) {
flags.VisitAll(func(flag *pflag.Flag) {
if err != nil {
// an error has been encountered in one of the previous flags
return
}
err = v.BindPFlag(flag.Name, flag)
switch flag.Value.Type() {
case "int", "int8", "int16", "int32", "int64":
v.SetDefault(flag.Name, cast.ToInt(flag.Value.String()))
case "bool":
v.SetDefault(flag.Name, cast.ToBool(flag.Value.String()))
default:
v.SetDefault(flag.Name, flag.Value.String())
}
})
return
}
开发者ID:DLag,项目名称:viper,代码行数:19,代码来源:viper.go
示例15: Get
//get Config value by key
func (c *Config) Get(key string) interface{} {
val := c.get(key)
switch val.(type) {
case bool:
return cast.ToBool(val)
case string:
return cast.ToString(val)
case int64, int32, int16, int8, int:
return cast.ToInt(val)
case float64, float32:
return cast.ToFloat64(val)
case time.Time:
return cast.ToTime(val)
case time.Duration:
return cast.ToDuration(val)
case []string:
return val
}
return val
}
开发者ID:samphomsopha,项目名称:jsonfig,代码行数:23,代码来源:config.go
示例16: ReadConfigFile
// ReadConfigFile read user defined hosts in .ayi.yml
func ReadConfigFile() {
log.Debug("Read git section in config file")
hostsMap = make(map[string]Host)
hostsSlice := cast.ToSlice(viper.Get("git.hosts"))
for _, h := range hostsSlice {
m := cast.ToStringMap(h)
_, exists := m["name"]
if !exists {
log.Warn("Skipp host without name")
continue
}
// TODO: more attributes, the following is not working
// - http port
// - support ssh
name := cast.ToString(m["name"])
https := cast.ToBool(util.GetWithDefault(m, "https", true))
port := cast.ToInt(util.GetWithDefault(m, "port", DefaultSSHPort))
h := NewHost(name)
h.SupportHTTPS = https
h.SSHPort = port
hosts = append(hosts, *h)
// TODO: may add order to host
hostsMap[name] = *h
}
// only merge default hosts that are not configed in config files
for _, defaultHost := range DefaultHosts {
_, exists := hostsMap[defaultHost.URL]
if !exists {
hosts = append(hosts, defaultHost)
hostsMap[defaultHost.URL] = defaultHost
}
}
}
开发者ID:dyweb,项目名称:Ayi,代码行数:39,代码来源:config.go
示例17: GetParam
func (page *Page) GetParam(key string) interface{} {
v := page.Params[strings.ToLower(key)]
if v == nil {
return nil
}
switch v.(type) {
case bool:
return cast.ToBool(v)
case string:
return strings.ToLower(cast.ToString(v))
case int64, int32, int16, int8, int:
return cast.ToInt(v)
case float64, float32:
return cast.ToFloat64(v)
case time.Time:
return cast.ToTime(v)
case []string:
return sliceToLower(v.([]string))
}
return nil
}
开发者ID:juicelink,项目名称:hugo,代码行数:23,代码来源:page.go
示例18: GetParam
func (s *SiteInfo) GetParam(key string) interface{} {
v := s.Params[strings.ToLower(key)]
if v == nil {
return nil
}
switch v.(type) {
case bool:
return cast.ToBool(v)
case string:
return cast.ToString(v)
case int64, int32, int16, int8, int:
return cast.ToInt(v)
case float64, float32:
return cast.ToFloat64(v)
case time.Time:
return cast.ToTime(v)
case []string:
return v
}
return nil
}
开发者ID:jaden,项目名称:hugo,代码行数:23,代码来源:site.go
示例19: Get
// Get returns an interface..
// Must be typecast or used by something that will typecast
func Get(key string) interface{} {
key = strings.ToLower(key)
v := find(key)
if v == nil {
return nil
}
switch v.(type) {
case bool:
return cast.ToBool(v)
case string:
return cast.ToString(v)
case int64, int32, int16, int8, int:
return cast.ToInt(v)
case float64, float32:
return cast.ToFloat64(v)
case time.Time:
return cast.ToTime(v)
case []string:
return v
}
return v
}
开发者ID:jordie,项目名称:viper,代码行数:26,代码来源:viper.go
示例20: Validate
// Give me a struct with field tags and i'll validate you, set defaults, etc.
func (cl *ConfigLoader) Validate(iface interface{}) error {
iValue := reflect.ValueOf(iface).Elem().Interface()
st := reflect.TypeOf(iValue)
ps := reflect.ValueOf(iValue)
// Loop all fields, set their default values if they have them and are empty
// Fail if mandatory fields are not set and have no value
for i := 0; i < ps.NumField(); i++ {
f := st.Field(i)
field := ps.FieldByName(f.Name)
dataKind := field.Kind()
var fValue interface{}
// Is an exported field, needs to
// start with an uppercase letter
fValue = getFieldValue(f.Name, field)
if !isExportedField(f.Name) {
continue
}
// Fail fast: bad regex on field
// Validate regex
regexStr := f.Tag.Get("regex")
var regex *regexp.Regexp
var err error
if regexStr != "" && dataKind != reflect.String {
return errors.New(fmt.Sprintf("Field '%s' has invalid 'regex' Tag '%s'. Regex can only be applied to string types", f.Name, regexStr))
} else if regexStr != "" {
regex, err = regexp.Compile(regexStr)
if err != nil {
return errors.New(fmt.Sprintf("Field '%s' has invalid regex '%s': %s", f.Name, regexStr, err.Error()))
}
}
required := cast.ToBool(f.Tag.Get("required")) == true
defaultVal := f.Tag.Get("default")
if (required == true || defaultVal != "") && isZero(field) {
if required == true && defaultVal == "" && isZero(field) {
return errors.New(fmt.Sprintf("Mandatory field '%s' has not been set, and has no provided default", f.Name))
}
field = reflect.ValueOf(iface).Elem().FieldByName(f.Name)
switch dataKind {
case reflect.Bool:
field.SetBool(cast.ToBool(defaultVal))
case reflect.String:
field.SetString(defaultVal)
case reflect.Slice, reflect.Array:
_type := field.Type().Elem()
_newArr := strings.Split(f.Tag.Get("default"), ",")
switch _type {
case reflect.TypeOf(""):
field.Set(reflect.ValueOf(_newArr))
case reflect.TypeOf(1):
// Convert array to int
intArray := make([]int, len(_newArr))
var err error
for j, val := range _newArr {
intArray[j], err = strconv.Atoi(val)
if err != nil {
return errors.New(fmt.Sprintf("Error creating default array for field '$s': %v\n", f.Name, err))
}
}
field.Set(reflect.ValueOf(intArray))
default:
return errors.New(fmt.Sprintf("Unsupported slice default type: %v\n", _type))
}
case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
s, err := strconv.ParseInt(defaultVal, 10, 64)
if err != nil {
return err
}
field.SetInt(s)
case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64:
s, err := strconv.ParseUint(defaultVal, 10, 64)
if err != nil {
return err
}
field.SetUint(s)
default:
return errors.New(fmt.Sprintf("Unsupported field '%s' of type: %s", f.Name, dataKind))
}
} else {
if regex != nil {
if !regex.MatchString(fValue.(string)) {
return errors.New(fmt.Sprintf("Regex validation failed on field '%s'. /%s/ does not match '%s'", f.Name, regexStr, fValue.(string)))
}
}
}
}
return nil
}
开发者ID:mefellows,项目名称:parity,代码行数:99,代码来源:config.go
注:本文中的github.com/spf13/cast.ToBool函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论