stringsSplit

为了验证,分别在1.0.1、1.1、1.2.2、1.3.3、1.4rc上面进行了测试,验证了上面的结论是正确的。

func main() {
	a := strings.Split("", ";")
	fmt.Printf("%d****%s****\n", len(a), a[0])
}

这个也很好理解。切割一个空字符串,肯定是没办法切的,那么结果就是没切开,把原字符串直接加入结果数组里面而已。只不过一开始有点难理解,因为我们都会认为如果是空字符串去切,结果数组里应该是空的。

Controller.GetIntint64intint64Controller.GetInt64Controller.GetInt
beego.AppConfig.Stringsbeego/config.go
func (b *beegoAppConfig) Strings(key string) []string {
	v := b.innerConfig.Strings(RunMode + "::" + key)
	if len(v) == 0 {
		return b.innerConfig.Strings(key)
	}
	return v
}
runmodedevproddefaultrunmoderunmodeiflen(v) == 0ini.go
func (c *IniConfigContainer) Strings(key string) []string {
	return strings.Split(c.String(key), ";")
}
iffalseif v[0] == ""

24号谢大合并了我的代码,开心开心开心。

本文所涉及到的完整源码请参考。

有疑问加站长微信联系(非本文作者)