使用此代码,是否有更好的方法来遍历所有用户并创建一个包含所有用户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)
}
MMTTMM
TA贡献1869条经验 获得超4个赞
不幸的是,我不知道编写该代码的更优雅的方法。
Go 确实有一个String.Join方法,因此如果您创建了一个帮助程序将您的用户数组转换为一段字符串 ( []string
),那么您可以将其传递给String.Join
.
我认为 Go 的静态类型和缺乏模板使得编写map
Ruby 那样的通用函数变得困难。
- 3 回答
- 0 关注
- 224 浏览
添加回答
举报
0/150
提交
取消