我有这个seq UIApplicationDelegate
,它有很多字符串。我想要做的是根据字长过滤seq。这可以通过说NSApplicationDelegate
但是,我想在过滤后的列表中添加一个char更长和char更短的单词。我是通过手动编写来完成的。
users
我可能需要更长/更短的2个字符添加到seq中,所以我正在寻找的是一种方法来浏览用户并过滤掉所有太长或太短的名称。我使用for循环
创建了这个filtered_users = users.filter(_.length == x) (x = wanted word length)
预先给出字长filtered_users2 = users.filter(_.length == x+1)
filtered_users3 = users.filter(_.length == x-1)
filtered_users ++= (filtered_users1 ++ filtered_users2)
和var filter = Seq[String]()
for (i <- max(0, x - difference) to (x + difference)) {
filter ++= users.filter(_.length == i)
}
。但是,如果seq很长,我不想太多次。我正在寻找的是一个只通过用户seq一次并返回过滤列表的实现。
显然,
x
没用。
答案 0 :(得分:1)
如果在匿名函数中多次使用_
,则将其视为多个输入参数(第一个_
将是第一个参数,第二个参数将是第二个参数,依此类推)。如果您想多次使用一个参数,您必须将其命名为:
val x = 3
val difference = 1
users.filter(u => u.length >= x - difference && u.length <= x + difference)