英文:
splitting values in []string in go
问题
我是你的中文翻译助手,以下是翻译好的内容:
我是Go编程语言的新手。
我正在编写一段代码,用于从命令行界面接收客户端输入,并将这些值传递给服务器进行处理。客户端和服务器都位于本地。
代码:
package main
import (
"flag"
"fmt"
"strings"
)
func main() {
text := gettext()
fmt.Println(text)
result := strings.Split(text, " ")
for i := range result {
fmt.Println(result[i])
}
}
func gettext() []string {
flag.Parse()
text := flag.Args()
if len(text) < 1 {
fmt.Println("请输入半径")
}
return text
}
当我从命令行运行时,出现以下错误:无法将text(类型为[]string)作为strings.Split函数的参数中的string类型使用。
基本上,我想要单独打印[]string中的值。
请问你能告诉我如何做吗?我尝试使用了strings.Split函数。
谢谢。
英文:
I am a novice in Go programming language.
I am writing a code to input from cli for client and pass the values to server for processing. both client and server are residing locally.
code :
package main
import (
"flag"
"fmt"
"strings"
)
func main() {
text := gettext()
fmt.Println(text)
result := strings.Split(text, " ")
for i := range result {
fmt.Println(result[i])
}
}
func gettext() []string {
flag.Parse()
text := flag.Args()
if len(text) < 1 {
fmt.Println("Please enter radius")
}
return text
}
when i run from command line its is giving me following error :cannot use text (type []string) as type string in argument to strings.Split
Basically i want to separately print values from []string .
Can you please let me know how to do it.
I tried using strings.split.
Thanks.
答案1
得分: 3
你不需要用" "
分隔值。
这些值已经被分隔开了,你的函数gettext
返回参数的切片。
试试这个例子:
package main
import (
"flag"
"fmt"
)
func main() {
text := gettext()
fmt.Println(text)
for i := range text {
fmt.Println(text[i])
}
}
func gettext() []string {
flag.Parse()
text := flag.Args()
if len(text) < 1 {
fmt.Println("请输入半径")
}
return text
}
从文档中可以看到:
func Args() []string
Args
返回非标志的命令行参数。
英文:
You don't need to separate values by " "
The values already separated and your function gettext
returns a slice of parameters.
Try this example:
package main
import (
"flag"
"fmt"
)
func main() {
text := gettext()
fmt.Println(text)
for i := range text {
fmt.Println(text[i])
}
}
func gettext() []string {
flag.Parse()
text := flag.Args()
if len(text) < 1 {
fmt.Println("Please enter radius")
}
return text
}
From the documentation:
> func Args() []string
> Args
returns the non-flag command-line arguments.
答案2
得分: 0
strings.Split()用于分割一个字符串值,而不是一个字符串数组。你的gettext()返回的是一个字符串数组,而不是一个字符串。所以你不需要使用strings.Split()。只需使用以下代码:
for _, str := range text {
fmt.Println(str)
}
英文:
strings.Split() is for spliting a string value, not a string array. Your gettext() is returing a string array, not a string. So you dont need string.Split(). Simply use
for _, str := range text {
fmt.Println(str)
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论