做ppt配图好用的网站,wordpress站点转移,邯郸有什么互联网大公司吗,seo撰写网站标题以及描述的案例在go语言的开发中我们经常需要对各种命名进行规范#xff0c; 今天给大家介绍的是一个高效的将字符串转 驼峰命名 #xff08;即 首字母大写的命名方式#xff09;的函数。 // 字符串转驼峰命名
// author tekintian tekintiangmail.com
func CamelStr(str string) …在go语言的开发中我们经常需要对各种命名进行规范 今天给大家介绍的是一个高效的将字符串转 驼峰命名 即 首字母大写的命名方式的函数。 // 字符串转驼峰命名
// author tekintian tekintiangmail.com
func CamelStr(str string) string {// 如果有 - 链接,统一将其替换为 _if strings.IndexByte(str, -) ! -1 {str strings.Replace(str, -, _, -1)}//按下划线切割字符串为单词tmp : strings.Split(str, _)for i, w : range tmp {// 判断第一个单词字母是否为小写字母if w[0] a w[0] z {// 这个地方的 w[0]-32 即将单词的第一个字母转换为大写.// 利用ascii码值差来转换, 小写字母的ascii码值比大写字母的ascii码值大32tmp[i] fmt.Sprintf(%v%v, string(w[0]-32), string(w[1:]))}// 单词首字母非大写字母的情况不需要处理}return strings.Join(tmp, ) // 将切片拼接为字符串后返回
}另外给大家看一个效率较低且代码冗长的一个字符串转驼峰命名函数 看看你能找出多少个效率低下和不规范的地方
// 驼峰命名 问题代码
func CamelStrX(s string) string {data : make([]byte, 0, len(s))j : falsek : falsenum : len(s) - 1for i : 0; i num; i {d : s[i]if k false d A d Z {k true}if d a d z (j || k false) {d d - 32j falsek true}if k d _ num i s[i1] a s[i1] z {j truecontinue}data append(data, d)}return string(data)
}
怎么样你能看出上面代码中有多少个问题吗 如果是你你会如何做呢