我的play 2模板中有一个Option [Product]。
在产品上定义的是价格'。
如何首先检查选项是否为某些(p)然后访问价格
@myproduct.price // <- This obviously fails because myproduct is an Option[Product]
@myproduct.getOrElse("not found").price // <- this does not work because price is not defined on the getOrElse.
我可以使用凌乱的匹配/案例陈述,但宁愿内联。无论如何这有可能吗?感谢
答案 0 :(得分:2)
您使用getOrElse
错误。您传递给getOrElse
的值也应该是Product
类型,应用price
就像您之前那样。
解决方案是创建一个默认Product
,只要您使用getOrElse
,就会传递。{/ p>
更好的解决方案是使用map
,例如:
@myproduct.map { actualProduct =>
actualProduct.price
}
仅当Option
不是None
时才想要对案例类执行某些操作时,通常会使用此选项。