更简洁的迭代数组+从值创建字符串的方法

使用此代码,是否有更好的方法来遍历所有用户并创建一个包含所有用户Nick值的新字符串?


package main


import "fmt"


type User struct {

    Nick     string

}



func main() {

    var users [2]User

    users[0] = User{ Nick: "Radar" }

    users[1] = User{ Nick: "NotRadar" }

    names := ":"

    for _, u := range users {

        names += u.Nick + " "

    }

    fmt.Println(names)


}


慕雪6442864
浏览 225回答 3
3回答

Helenr

看起来你真的想要一个字符串。在这里加入。您可能希望避免原始代码中重复字符串连接的紧密循环;我相当肯定 Go 没有为其原始字符串实现类似绳索的数据结构。package mainimport (    "fmt"    "strings")type User struct {    Nick string}func main() {    var users [2]User    users[0] = User{Nick: "Radar"}    users[1] = User{Nick: "NotRadar"}    userNames := []string{}    for _, u := range users {        userNames = append(userNames, u.Nick)    }    names := ":" + strings.Join(userNames, " ")    fmt.Println(names)}

MMTTMM

不幸的是,我不知道编写该代码的更优雅的方法。Go 确实有一个String.Join方法,因此如果您创建了一个帮助程序将您的用户数组转换为一段字符串 ( []string),那么您可以将其传递给String.Join.我认为 Go 的静态类型和缺乏模板使得编写mapRuby 那样的通用函数变得困难。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go