刚开始使用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
答案 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