gpt4 book ai didi

scala - Play 框架 Scala 模板

转载 作者:行者123 更新时间:2023-12-01 02:23:01 25 4
gpt4 key购买 nike

我已经使用 Play Framework 工作了一段时间,但我几乎是 Scala 模板的新手
.对于我作为一个熟悉 C 的语言开发人员来说,有时看起来有点奇怪

我想知道这里是否有人可以帮助我更好地理解这段代码我从
http://www.playframework.com/documentation/2.2.x/JavaGuide3
(Zentask 示例)

@(projects: List[Project], todoTasks: List[Task])

@main("Welcome to Play") {

<header>
<hgroup>
<h1>Dashboard</h1>
<h2>Tasks over all projects</h2>
</hgroup>
</header>

<article class="tasks">
@todoTasks.groupBy(_.project).map {
case (project, tasks) => {
<div class="folder" data-folder-id="@project.id">
<header>
<h3>@project.name</h3>
</header>
<ul class="list">
@tasks.map { task =>
<li data-task-id="@task.id">
<h4>@task.title</h4>
@if(task.dueDate != null) {
<time datetime="@task.dueDate">
@task.dueDate.format("MMM dd yyyy")</time>
}

@if(task.assignedTo != null && task.assignedTo.email != null) {
<span class="assignedTo">@task.assignedTo.email</span>
}
</li>
}
</ul>
</div>
}
}
</article>
}

这 3 行对我来说真的很困惑:
@todoTasks.groupBy(_.project).map {

case (project, tasks) => {

@tasks.map { task =>

如果有人能更详细地向我解释这 3 行到底在做什么,我将不胜感激?

谢谢你们

最佳答案

好的,这里有几个转换正在进行。
@todoTasks.groupBy(_.project)说 todoTask 有一个名为 project 的字段,并且我们应该将该 todoTasks 列表转换为一个 Map,其中项目是键,值都是与键匹配的 todoTasks。
.map { case (project, tasks) => {说我们现在有一个 Map,其中的键是 project并且值是 tasks 的列表.如果我们有这两个项目(项目、任务),那么我们应该对每个任务做一些事情,事情就是 => 后面的内容。

提示,作为 Java Play 开发人员,您无需深入了解 Scala 即可提高工作效率,只需在 Java Controller 中转换数据即可。

关于scala - Play 框架 Scala 模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18860017/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com