|
@@ -52,8 +52,10 @@ func (l keyList) Less(i, j int) bool {
|
|
|
return ak < bk
|
|
return ak < bk
|
|
|
}
|
|
}
|
|
|
ar, br := []rune(a.String()), []rune(b.String())
|
|
ar, br := []rune(a.String()), []rune(b.String())
|
|
|
|
|
+ digits := false
|
|
|
for i := 0; i < len(ar) && i < len(br); i++ {
|
|
for i := 0; i < len(ar) && i < len(br); i++ {
|
|
|
if ar[i] == br[i] {
|
|
if ar[i] == br[i] {
|
|
|
|
|
+ digits = unicode.IsDigit(ar[i])
|
|
|
continue
|
|
continue
|
|
|
}
|
|
}
|
|
|
al := unicode.IsLetter(ar[i])
|
|
al := unicode.IsLetter(ar[i])
|
|
@@ -62,7 +64,11 @@ func (l keyList) Less(i, j int) bool {
|
|
|
return ar[i] < br[i]
|
|
return ar[i] < br[i]
|
|
|
}
|
|
}
|
|
|
if al || bl {
|
|
if al || bl {
|
|
|
- return bl
|
|
|
|
|
|
|
+ if digits {
|
|
|
|
|
+ return al
|
|
|
|
|
+ } else {
|
|
|
|
|
+ return bl
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
var ai, bi int
|
|
var ai, bi int
|
|
|
var an, bn int64
|
|
var an, bn int64
|