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

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

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

Go
慕雪6442864 2021-06-17 14:01:21
使用此代码,是否有更好的方法来遍历所有用户并创建一个包含所有用户Nick值的新字符串?package mainimport "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)}
查看完整描述

3 回答

?
Helenr

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

看起来你真的想要一个字符串。在这里加入。您可能希望避免原始代码中重复字符串连接的紧密循环;我相当肯定 Go 没有为其原始字符串实现类似绳索的数据结构。


package main


import (

    "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)

}


查看完整回答
反对 回复 2021-06-21
?
MMTTMM

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

不幸的是,我不知道编写该代码的更优雅的方法。

Go 确实有一个String.Join方法,因此如果您创建了一个帮助程序将您的用户数组转换为一段字符串 ( []string),那么您可以将其传递给String.Join.

我认为 Go 的静态类型和缺乏模板使得编写mapRuby 那样的通用函数变得困难。


查看完整回答
反对 回复 2021-06-21
  • 3 回答
  • 0 关注
  • 224 浏览
慕课专栏
更多

添加回答

举报

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