以下是我的代码;我将 Field 和 Values 传递给一个名为 的方法insert(),其中的值分别填充到字符串数组Fields[] 和中Values[] 。字符串数组变量Fields[] 和Values[]正在填充到insert(). 但是当我在 main 方法中打印相同的内容时,它们是空的。我希望保留这些值。我如何实现这一目标?请告诉我。谢谢代码:package mainimport ( "fmt" "strings" "strconv")var Field string = "text,text,text,text"var Value string = "1,2,3,4"var num int = 4var Fields[] stringvar Values[] stringfunc 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(): []
1 回答
杨魅力
TA贡献1811条经验 获得超6个赞
在insert
你有:
Fields := make([]string, num) Values := make([]string, num)
这定义了两个新的局部变量,它们“遮蔽”了全局变量。请记住,在一个操作中:=
定义和分配一个变量。要获得您想要的行为,只需分配给您的全局变量而不是重新定义它们:
Fields = make([]string, num) Values = make([]string, num)
- 1 回答
- 0 关注
- 185 浏览
添加回答
举报
0/150
提交
取消