GoLang 字符串为空

以下是我的代码;


我将 Field 和 Values 传递给一个名为 的方法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(): []


狐的传说
浏览 186回答 1
1回答

杨魅力

在insert你有:            Fields := make([]string, num)             Values := make([]string, num)这定义了两个新的局部变量,它们“遮蔽”了全局变量。请记住,在一个操作中:= 定义和分配一个变量。要获得您想要的行为,只需分配给您的全局变量而不是重新定义它们:            Fields = make([]string, num)             Values = make([]string, num)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go