如何制作" areYouLazy"功能评估"字符串"只有一次最好的方式?
def areYouLazy(string: => String) = {
string
string
}
areYouLazy {
println("Generating a string")
"string"
}
答案 0 :(得分:7)
按名称调用参数。
为避免多次执行,您只需使用仅在第一次访问时执行的lazy
缓存值:
def areYouLazy(string: => String) = {
lazy val cache = string
cache // executed
cache // simply access the stored value
}