map
Play 2.0 テンプレートで2 つの連続した操作を実行したいと考えています。私はこのように試しました:
@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("|"))
{
しかし、最初の言葉でそこでクラッシュしexpected start of definition
ます...
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
ていますが、ここでは使用していません。内部の仕組みに違いない。