我有一个用户列表。每个用户可能有一个字段users(如朋友)。对于每个用户,我想得到与该用户相关的用户,并返回每次的名称。像一些递归函数。
case class User(users : List[User])
val users: List[User]
对于每个用户,我希望一次获取一个用户名,因为它将用于构造其他内容。
这就是我尝试的方法=〉
private def helper = {
users.users.map(u => getName(u))
}
这将返回表示userNames的List[String]
我想要实现的是为每个用户返回一个name: String
,每个用户在调用函数时都有用户,直到没有用户为止。
1条答案
按热度按时间ejk8hzay1#
你的问题令人困惑。
首先,我不确定
users.users
是什么。是user.users
(对于val user: User
)还是users.map(_.users)
?对于val users: List[User]
,users.users
不能编译。其次,我不太清楚下面的话是什么意思
我想实现的是返回一个
name: String
如果我没理解错的话你有一个功能
每个用户都有自己的名字,他的朋友也有自己的名字。你在做什么把很多名字变成一个名字?
你想 * 返回 * 一个名字还是 * 打印 * 一个名字(一次一个)?如果是后者,那么你只需要添加
.foreach
或者,返回一个名字可能只是指像上面的
.flatMap
一样进行扁平化。代替
.map
/.flatMap
等,你可以使用for-comprehension我也不知道你说的
Scala中的Tail Recursion在每次丢弃List Head后都会返回它