• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Golang cast.ToBool函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了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;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Golang cast.ToDuration函数代码示例发布时间:2022-05-28
下一篇:
Golang afero.Fs类代码示例发布时间:2022-05-28
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap