"areYouLazy"함수를 "string"을 최상의 평가 방법으로 평가하는 방법은 무엇입니까?지연 함수 인수?
def areYouLazy(string: => String) = {
string
string
}
areYouLazy {
println("Generating a string")
"string"
}
"areYouLazy"함수를 "string"을 최상의 평가 방법으로 평가하는 방법은 무엇입니까?지연 함수 인수?
def areYouLazy(string: => String) = {
string
string
}
areYouLazy {
println("Generating a string")
"string"
}
전화는별로 이름 인수는 매번 실행 당신이 그들에 액세스 할 수 있습니다. 당신의`string`가 아니기 때문에
def areYouLazy(string: => String) = {
lazy val cache = string
cache // executed
cache // simply access the stored value
}
고마워요! 나는 기능을 통해 그것을 끝내었다. 읽을 수있는 것 같습니다. 변수에 줄 이름이 적습니다. '개인 putOnTable (getCard :() => 옵션 [카드]) 데프 (암시 적 테이블 : 테이블) = getCard() 일부 (카드) @ 경기 { 경우 cardOption => table.addCard (카드) cardOption 사례 없음 => 없음 }' –
@HappyCoder - 왜'getCard'가 여분의 이름이 아닌지 나는 이해하지 못합니다. 또한'() => A'보다는'=> A''에 인수를 전달하는 것이 더 어렵습니다. 자신의 방식대로해야 할 이유가있을 수 있지만 "가독성이 뛰어나다"며 "이름이 적습니다"는 것은 아닙니다. –
나는 그것이 가능하다고 생각하지 않습니다
는 단순히 액세스 할 때 처음에만 실행되는lazy
캐시 값을 사용할 수 있습니다, 여러 실행을 방지하려면 변하기 쉬운. – Ashalynd'valYLazyAnymore = string;과 같이'areYouLazy'의 변수에 할당 할 수 있습니다. 문자열'. –