在模板播放2.0模板中将字符串转换为Scala中的Long

问题描述 投票:12回答:2

如何在Scala play 2.0模板中从String转换为long?

我想做以下操作:Application.profile(Long user_id)

<a href='@routes.Application.profile((Long) session.get("user_id"))'>@session.get("username")</a>
templates scala playframework-2.0
2个回答
29
投票

Casting不像Scala那样工作。

你要:

session.get("user_id").toLong

0
投票

启动Scala 2.13你可能更喜欢String::toLongOption,以便安全地处理不能投射到StringLongs:

"1234".toLongOption.getOrElse(-1L) // 1234L
"lOZ1".toLongOption.getOrElse(-1L) // -1L
"1234".toLongOption                // Some(1234L)
"lOZ1".toLongOption                // None

在你的情况下:

session.get("user_id").toLongOption.getOrElse(-1L)

对于早期版本,您也可以使用String::toLongTry的混合:

import scala.util.Try

Try("1234".toLong).getOrElse(-1L) // 1234L
Try("lOZ1".toLong).getOrElse(-1L) // -1L
© www.soinside.com 2019 - 2024. All rights reserved.