我对Scala代码的编译时安全性印象非常深刻,如下所示:
val searchCountryPrefix:String = ....
val sql = SQL"""
select
cn.name, cn.indepyear, c.name
from
city c
join country cn on c.id = cn.capital
where
cn.name like $searchCountryPrefix
"""
...因为如果我在字符串中输入拼写错误,例如用错了:
...
where
cn.name like $searchCountyPrefix -- instead of country, it says county
"""
...然后Scala编译器捕获并报告它。
除了Lisp之外,我从未见过任何其他语言的编译时魔术 - Play框架是如何做到这一点的?
更重要的是,我可以在自己的库中进行这种神奇的编译时字符串检查吗?
提前感谢您的帮助。
答案 0 :(得分:3)
这不是Play特有的,它是Scala的一个功能。您可以在此处了解有关字符串插值的更多信息:http://docs.scala-lang.org/overviews/core/string-interpolation.html