-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathuntils.go
76 lines (65 loc) · 1.36 KB
/
untils.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
/*
* Copyright (c) 2019 Mars Lee. All rights reserved.
*/
package genModels
import (
"strconv"
"strings"
)
// aaa_bbb => AaaBbb
// if !ucFirst
// aaa_bbb => aaabbb
func CamelCase(str, prefix string, ucFirst bool) string {
// 是否有表前缀, 设置了就先去除表前缀
if prefix != "" {
str = strings.Replace(str, prefix, "", 1)
}
var text string
//for _, p := range strings.Split(name, "_") {
for _, p := range strings.Split(str, "_") {
// 字段首字母大写的同时, 是否要把其他字母转换为小写
switch len(p) {
case 0:
case 1:
text += strings.ToUpper(p[0:1])
default:
// 字符长度大于1时
if ucFirst == true {
text += UcFirst(p[0:1]) + LcFirst(p[1:])
} else {
text += UcFirst(p[0:1]) + p[1:]
}
}
}
return text
}
func CaseCamel(str string) string {
var text string
for _, p := range str[:] {
if p > 64 && p < 91 {
p = p + 32
text += "_"
}
text += string(p)
}
return text
}
//format
func Tab(depth int) string {
return strings.Repeat("\t", depth)
}
func UcFirst(s string) string {
return strings.ToUpper(s[0:1]) + s[1:]
}
func LcFirst(s string) string {
return strings.ToLower(s[0:1]) + s[1:]
}
func Byte2Int64(data []byte) int64 {
var str string
var ret int64 = 0
for i := 0; i < len(data); i++ {
str += string(data[i])
}
ret, _ = strconv.ParseInt(str, 10, 64)
return ret
}