Skip to content

Commit d1279e7

Browse files
committed
changed toString function
1 parent 908e451 commit d1279e7

File tree

2 files changed

+18
-20
lines changed

2 files changed

+18
-20
lines changed

graph.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -190,7 +190,7 @@ func (g *Graph) CallProcedure(procedure string, yield []string, args ...interfac
190190

191191
tmp := make([]string, 0, len(args))
192192
for arg := range args {
193-
tmp = append(tmp, ToString(arg).(string))
193+
tmp = append(tmp, ToString(arg))
194194
}
195195
q += fmt.Sprintf("%s)", strings.Join(tmp, ","))
196196

utils.go

Lines changed: 17 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -4,42 +4,40 @@ import (
44
"crypto/rand"
55
"fmt"
66
"strings"
7+
"strconv"
78
)
89

910
// go array to string is [1 2 3] for [1, 2, 3] array
1011
// cypher expects comma separated array
11-
func arrayToString(arr interface{}) interface{} {
12-
v := arr.([]interface{})
13-
var arrayLength = len(v)
12+
func arrayToString(arr []interface{}) string {
13+
var arrayLength = len(arr)
1414
strArray := []string{}
1515
for i := 0; i < arrayLength; i++ {
16-
strArray = append(strArray, fmt.Sprintf("%v", ToString(v[i])))
16+
strArray = append(strArray, ToString(arr[i]))
1717
}
18-
return "[" + strings.Join(strArray[:], ",") + "]"
18+
return "[" + strings.Join(strArray, ",") + "]"
1919
}
2020

21-
func ToString(i interface{}) interface{} {
21+
func ToString(i interface{}) string {
2222
if(i == nil) {
2323
return "null"
2424
}
2525

2626
switch i.(type) {
2727
case string:
2828
s := i.(string)
29-
if len(s) == 0 {
30-
return "\"\""
31-
}
32-
if s[0] != '"' {
33-
s = "\"" + s
34-
}
35-
if s[len(s)-1] != '"' {
36-
s += "\""
37-
}
38-
return s
39-
case []interface {} :
40-
return arrayToString(i)
29+
return strconv.Quote(s)
30+
case int:
31+
return strconv.Itoa(i.(int))
32+
case float64:
33+
return strconv.FormatFloat(i.(float64), 'f', -1, 64)
34+
case bool:
35+
return strconv.FormatBool(i.(bool))
36+
case []interface {}:
37+
arr := i.([]interface{})
38+
return arrayToString(arr)
4139
default:
42-
return i
40+
panic("Unrecognized type to convert to string")
4341
}
4442
}
4543

0 commit comments

Comments
 (0)