在golang中传递字符串参数

时间:2017-03-28 05:13:11

标签: go

刚开始使用Go并遇到基本函数调用问题:

fileContentBytes := ioutil.ReadFile("serverList.txt")
fileContent := string(fileContentBytes)
serverList := strings.Split(fileContent,"\n")
   /*
serverList:
server1,
server2,
server3
   */
for _,server := range serverList {
   fmt.Println("sending ", server)
   processServer(server)
}

func processServer(s string) {
   fmt.Println(s, " : started processing")
}

输出:

sending server1
 : started processing
sending server2
 : started processing
sending server3
 server3: started processing

在for循环的上述代码中,我能够打印数组的所有元素,但只有最后一个元素才能正确传递给函数processServer

我做错了什么?

转到版本:1.8 操作系统:Windows 7 x64

1 个答案:

答案 0 :(得分:5)

您能否提供定义serverList变量的代码?

否则,您可以使用以下代码段:

package main

import (
    "fmt"
)

func processServer(s string) {
   fmt.Println(s, " : started processing")
}

func main() {
serverList := [...]string{"server1","server2","server3"}

for _,server := range serverList {
   fmt.Println("sending ", server)
   processServer(server)
}
}

您可以在此处运行脚本:https://play.golang.org/p/EL9RgIO67n