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

在 go 中拆分 []string 中的值

在 go 中拆分 []string 中的值

Go
白猪掌柜的 2021-11-08 18:09:51
我是 Go 编程语言的新手。我正在编写代码以从 cli 为客户端输入并将值传递给服务器进行处理。客户端和服务器都驻留在本地。代码 :package mainimport (    "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}当我从命令行运行时,它给了我以下错误:不能在 strings.Split 的参数中使用文本(类型 []string)作为类型字符串基本上我想从 []string 单独打印值。你能告诉我怎么做吗?我尝试使用strings.split。
查看完整描述

2 回答

?
慕虎7371278

TA贡献1802条经验 获得超4个赞

你并不需要通过分隔值" "

已经分离出的价值观和你的函数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("Please enter radius")

    }


    return text

}

从文档:


func Args() []string

Args 返回非标志命令行参数。


查看完整回答
反对 回复 2021-11-08
?
慕姐4208626

TA贡献1852条经验 获得超7个赞

strings.Split() 用于拆分字符串值,而不是字符串数组。您的 gettext() 正在返回一个字符串数组,而不是一个字符串。所以你不需要 string.Split()。只需使用


for _, str := range text {

    fmt.Println(str)

}


查看完整回答
反对 回复 2021-11-08
  • 2 回答
  • 0 关注
  • 200 浏览
慕课专栏
更多

添加回答

举报

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