4

我想在模板(scala.html)中创建一个列表。

我试过了

val list = @{ List("a", "b", "c", "d", "e") }

val list = List("a", "b", "c", "d", "e")

@list = @{ List("a", "b", "c", "d", "e") }

@list = List("a", "b", "c", "d", "e")

@defining(List("a", "b", "c", "d", "e")) { list =>
    // code here
}

但我总是得到错误object List is not a value。我不知道 Scala(我现在正在学习),但在API中它有以下示例

// Make a list via the companion object factory
val days = List("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday")

我想要做的是过滤地图。

我有一个 Map[Symbol, Any] 并且我正在尝试获取密钥不在上述列表中的所有项目。像这样的东西

@f = @{ map.filterKeys(!list.contains(_)) } 
// i do not know if the above statement is correct, because i can't get over there 
4

3 回答 3

6

只是缺少一个进口。我添加了

@import scala.collection.immutable._

要不就

@import scala._

在视图中(scala.html)并且工作得很好。

我以为那个scala包就像java.lang

于 2012-07-31T20:52:47.063 回答
2

从看起来您正在做的事情来看,您似乎是在其中一个视图文件中编写此代码。与其在 scala 中解决这个问题,不如在控制器类中处理此任务,然后将该列表传递给视图文件。用“@”符号做这种工作会很棘手。

于 2012-07-31T19:06:46.067 回答
-2

我认为您应该使用 aSet而不是 a List,如下所示:

@{ map.filterKeys(!Set("a", "b", "c", "d", "e").contains(_)) } 
于 2012-07-31T20:26:43.020 回答