2 Star 1 Fork 1

mosache/YFrame

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
case.go 993 Bytes
一键复制 编辑 原始数据 按行查看 历史
ヤ沒脩袮兲︶ 提交于 2024-01-09 18:36 . temp
package strx
import (
"unicode"
)
// ToSnakeCase change ex. TestModel to test_model
func ToSnakeCase(source string) string {
var out []rune
for idx, r := range source {
if idx == 0 {
out = append(out, unicode.ToLower(r))
continue
}
if unicode.IsUpper(r) && idx > 0 {
/// 判断前一个字符是否是小写
if unicode.IsLower(rune(source[idx-1])) {
out = append(out, '_', unicode.ToLower(r))
continue
}
/// 判断后一个字符是否是小写
if idx < len(source)-1 && unicode.IsLower(rune(source[idx+1])) {
out = append(out, '_', unicode.ToLower(r))
continue
}
out = append(out, unicode.ToLower(r))
continue
}
out = append(out, r)
}
return string(out)
}
/*
首字母转为大写
*/
func ToCapitalize(source string) string {
ss := []rune(source)
out := make([]rune, 0)
for idx, e := range ss {
if idx == 0 {
out = append(out, unicode.ToUpper(e))
} else {
out = append(out, e)
}
}
return string(out)
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/mosache/YFrame.git
git@gitee.com:mosache/YFrame.git
mosache
YFrame
YFrame
v0.1.80

搜索帮助