本文整理汇总了Golang中github.com/spf13/cast.ToBool函数的典型用法代码示例。如果您正苦于以下问题:Golang ToBool函数的具体用法?Golang ToBool怎么用?Golang ToBool使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了ToBool函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的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{})),
}
}
示例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
}
示例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
}
示例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
}
示例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
}
示例6: ShouldGzip
func (c *Config) ShouldGzip(contentType string) bool {
mediaType, _, _ := mime.ParseMediaType(contentType)
if mediaType != "" {
return cast.ToBool(c.gzipPatterns.get(mediaType))
}
return false
}
示例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
}
示例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
}
示例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
}
示例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)
}
}
}
示例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))
}
示例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
}
示例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
}
示例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
}
示例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
}