模板 – Play 2.0 – 映射到`map`或`for-yield`结果模板
发布时间:2020-12-16 08:47:11 所属栏目:安全 来源:网络整理
导读:我想在Play 2.0模板中执行两个连续的地图操作.我试过这样的: @defining(for(a - as) yield { doSmthWith(a); doSmthWith2(a) }) { aaas = aaas.map(_.toString).mkString("|") } /*CRASH*/ 我认为它等同于常规Scala: val aaas = for(a - as) yield { doSmt
我想在Play 2.0模板中执行两个连续的地图操作.我试过这样的:
@defining(for(a <- as) yield { doSmthWith(a); doSmthWith2(a) }) { aaas => aaas.map(_.toString).mkString("|") } /*CRASH*/ 我认为它等同于常规Scala: val aaas = for(a <- as) yield { doSmthWith(a); doSmthWith2(a) } println(aaas.map(_.toString).mkString("|")) 但它在第一个崩溃那里{说预期的定义开始…… 同样的事情,就像我用常规地图替换for循环: @(as.map(a => { doSmthWith(a); doSmthWith2(a) })).map(_.toString).mkString("|")) 在第一个}符号上出现相同的崩溃.如何在Play模板中实现顺序映射? 更新: 堆栈 – 在这里! – 从控制台: sbt.PlayExceptions$CompilationException: Compilation error [expected start of de finition] at sbt.PlayReloader$$anon$2$$anonfun$reload$3$$anonfun$2$$anonfun$apply$ 11$$anonfun$apply$12.apply(PlayReloader.scala:224) ~[na:na] at sbt.PlayReloader$$anon$2$$anonfun$reload$3$$anonfun$2$$anonfun$apply$ 11$$anonfun$apply$12.apply(PlayReloader.scala:224) ~[na:na] at scala.Option.map(Option.scala:133) ~[scala-library.jar:0.11.2] at sbt.PlayReloader$$anon$2$$anonfun$reload$3$$anonfun$2$$anonfun$apply$ 11.apply(PlayReloader.scala:224) ~[na:na] at sbt.PlayReloader$$anon$2$$anonfun$reload$3$$anonfun$2$$anonfun$apply$ 11.apply(PlayReloader.scala:221) ~[na:na] at scala.Option.map(Option.scala:133) ~[scala-library.jar:0.11.2] 堆栈说关于Option的smth但我不在这里使用它们.必须是一些内部运作. 解决方法
这有效:
@defining(for (a <- List(1,2,3)) yield { play.api.Logger.debug("a:" + a) a*3 }) { as => @(as.mkString("|")) } 在页面中显示3 | 6 | 9并在控制台中打印: [debug] application - a:1 [debug] application - a:2 [debug] application - a:3 所以我的猜测是在表达式前添加@符号,并将开头大括号放在同一行,因为定义的结束paren会使它工作(假设doSmthWith2(a)实际上返回的不是单位): @defining(for(a <- as) yield { doSmthWith(a); doSmthWith2(a) }) { aaas => @(aaas.map(_.toString).mkString("|")) } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Bash Shell;读命令;在Windows 7上使用Cygwin
- 形式 – 角度如何在条件ng-required时禁用验证
- scala – 无法编译scrooge thrift插件生成的源代码
- 专家观察 | 张婷婷:“私有云能力成熟度模型及评估”
- NodeJS Mysql与Docker Compose 2
- axis 发布webservice(web.xml,server-config.wsdd)
- Unix Network Programming Episode 2
- Bootstrap入门(三)<p>标签的css样式
- 生产力 – 我的vimrc映射在Ubuntu中失败
- angular – 如何从离子2中另一个组件的模板调用组件的功能