@@ -152,7 +152,7 @@ func NumberFormat(number float64, decimals uint, decPoint, thousandsSep string)
152152 str := fmt .Sprintf ("%." + strconv .Itoa (dec )+ "F" , number )
153153 prefix , suffix := "" , ""
154154 if dec > 0 {
155- prefix = str [0 :len (str )- (dec + 1 )]
155+ prefix = str [:len (str )- (dec + 1 )]
156156 suffix = str [len (str )- dec :]
157157 } else {
158158 prefix = str
@@ -708,18 +708,20 @@ func ArrayFlip(m map[interface{}]interface{}) map[interface{}]interface{} {
708708
709709// array_keys()
710710func ArrayKeys (elements map [interface {}]interface {}) []interface {} {
711- var keys []interface {}
711+ i , keys := 0 , make ( []interface {}, len ( elements ))
712712 for key , _ := range elements {
713- keys = append (keys , key )
713+ keys [i ] = key
714+ i ++
714715 }
715716 return keys
716717}
717718
718719// array_values()
719720func ArrayValues (elements map [interface {}]interface {}) []interface {} {
720- var vals []interface {}
721+ i , vals := 0 , make ( []interface {}, len ( elements ))
721722 for _ , val := range elements {
722- vals = append (vals , val )
723+ vals [i ] = val
724+ i ++
723725 }
724726 return vals
725727}
@@ -820,7 +822,7 @@ func ArrayPop(s *[]interface{}) interface{} {
820822 }
821823 ep := len (* s ) - 1
822824 e := (* s )[ep ]
823- * s = (* s )[0 :ep ]
825+ * s = (* s )[:ep ]
824826 return e
825827}
826828
@@ -1403,15 +1405,15 @@ func VersionCompare(version1, version2, operator string) bool {
14031405 p1 , p2 := "" , ""
14041406 n1 = strings .IndexByte (ver1 , '.' )
14051407 if n1 == - 1 {
1406- p1 , ver1 = ver1 [0 :], ""
1408+ p1 , ver1 = ver1 [:], ""
14071409 } else {
1408- p1 , ver1 = ver1 [0 :n1 ], ver1 [n1 + 1 :]
1410+ p1 , ver1 = ver1 [:n1 ], ver1 [n1 + 1 :]
14091411 }
14101412 n2 = strings .IndexByte (ver2 , '.' )
14111413 if n2 == - 1 {
1412- p2 , ver2 = ver2 [ 0 :] , ""
1414+ p2 , ver2 = ver2 , ""
14131415 } else {
1414- p2 , ver2 = ver2 [0 :n2 ], ver2 [n2 + 1 :]
1416+ p2 , ver2 = ver2 [:n2 ], ver2 [n2 + 1 :]
14151417 }
14161418
14171419 if (p1 [0 ] >= '0' && p1 [0 ] <= '9' ) && (p2 [0 ] >= '0' && p2 [0 ] <= '9' ) { // all isdigit
@@ -1499,7 +1501,7 @@ func VersionCompare(version1, version2, operator string) bool {
14991501 }
15001502 }
15011503
1502- return string (buf [0 :j ])
1504+ return string (buf [:j ])
15031505 }
15041506
15051507 // compare special version forms
@@ -1523,7 +1525,7 @@ func VersionCompare(version1, version2, operator string) bool {
15231525 if len1 < len (name ) {
15241526 continue
15251527 }
1526- if strings .Compare (form1 [0 :len (name )], name ) == 0 {
1528+ if strings .Compare (form1 [:len (name )], name ) == 0 {
15271529 found1 = order
15281530 break
15291531 }
@@ -1532,7 +1534,7 @@ func VersionCompare(version1, version2, operator string) bool {
15321534 if len2 < len (name ) {
15331535 continue
15341536 }
1535- if strings .Compare (form2 [0 :len (name )], name ) == 0 {
1537+ if strings .Compare (form2 [:len (name )], name ) == 0 {
15361538 found2 = order
15371539 break
15381540 }
0 commit comments