pme*_*pme 5 scala playframework twirl
我正在迁移到 Scala 2.13。
args: (Symbol, String)*在 Play Twirl 模板中给了我这个警告:
不推荐将显式数组值传递给 Scala varargs 方法(自 2.13.0 起),并且会产生防御性副本;使用更高效的非复制 ArraySeq.unsafeWrapArray 或显式 toIndexedSeq 调用
这是整个模板:
@(action: play.api.mvc.Call, args: (Symbol, String)*)(body: => Html)
<form method="@action.method"
@toHtmlArgs(args.toMap)>
@body
</form>
Run Code Online (Sandbox Code Playgroud)
该函数的调用方式如下:
@helper.formRelative(action = ..., Symbol("id") -> "assignForm", Symbol("class") -> "ui form") { ..body.. }
Run Code Online (Sandbox Code Playgroud)
由于我在很多地方都使用它,有没有办法在不更改签名的情况下解决这个问题?
我尝试了不同的事情,例如:
toSeq:@toHtmlArgs(args.toSeq.toMap)@toHtmlArgs(args.toMap)出现的警告。按照建议,使用scala.collection.immutable.ArraySeq.unsafeWrapArray:将其传递为args:
unsafeWrapArray(Array(Symbol("id") -> "assignForm", Symbol("class") -> "ui form")):_*
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1017 次 |
| 最近记录: |