以下是我的代码;
我将字段和值传递给一个名为insert()
的方法,其中的值分别填充到字符串数组Fields[]
和Values[]
中。字符串数组变量Fields[]
和Values[]
将填充到insert()
中。但是当我在main方法中打印相同的内容时,它们是空的。我希望保留这些值。
我该如何实现这一点?请让我知道。
谢谢
代码:
package main
import (
"fmt"
"strings"
"strconv"
)
var Field string = "text,text,text,text"
var Value string = "1,2,3,4"
var num int = 4
var Fields[] string
var Values[] string
func main() {
insert(Field, Value)
fmt.Println("Fields from main():", Fields)
fmt.Println("Values from main():", Values)
}
func insert(Field string, Value string){
if Field != "" && Value != "" {
c := 0
Fields := make([]string, num)
Values := make([]string, num)
field := strings.Split(Field, ",")
value := strings.Split(Value, ",")
for i := range field {
Fields[c] = field[i]
c = c + 1
}
c = 0
for j := range value {
Values[c] = value[j]
c = c + 1
}
fmt.Println("Fields from insert():", Fields)
fmt.Println("Values from insert():", Values)
}
}
以下是输出;
Fields from insert(): [text text text text]
Values from insert(): [1 2 3 4]
Fields from main(): []
Values from main(): []
发布于 2018-08-23 04:42:33
在insert
中,您可以:
Fields := make([]string, num)
Values := make([]string, num)
这定义了两个新的局部变量,它们“隐藏”了全局变量。记住,:=
在一次操作中定义并赋值一个变量。要获得你想要的行为,只需分配给你的全局变量,而不是重新定义它们:
Fields = make([]string, num)
Values = make([]string, num)
https://stackoverflow.com/questions/51974735
复制相似问题