为了账号安全,请及时绑定邮箱和手机立即绑定

GoLang 字符串为空

GoLang 字符串为空

Go
狐的传说 2023-03-21 17:23:24
以下是我的代码;我将 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)


查看完整回答
反对 回复 2023-03-21
  • 1 回答
  • 0 关注
  • 185 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信