Scala chamada de função pelo nome
intérprete Scala de duas maneiras parâmetros função analítica (argumentos de função) quando:
- Para uma chamada (call-by-value): valor da expressão parâmetro é calculada primeiro e depois aplicado às funções internas;
- Pela chamada nome (call-by-name): A expressão de parâmetro não é aplicado diretamente para o cálculo das funções internas
Antes de entrar dentro da função é chamado pelo valor foi calculado sobre o valor da expressão parâmetro e chamar pelo nome de expressão argumento é um valor calculado dentro da função.
Isso faz com que um fenômeno, chamando cada um pelo nome quando o intérprete será calculado uma vez que o valor da expressão de usar.
object Test { def main(args: Array[String]) { delayed(time()); } def time() = { println("获取时间,单位为纳秒") System.nanoTime } def delayed( t: => Long ) = { println("在 delayed 方法内") println("参数: " + t) t } }
Exemplos do acima, nós declaramos um método retardado chamado por nome para definir o nome da variável e digitar usando o símbolo =>. Implementação do código acima, os resultados de saída são as seguintes:
$ scalac Test.scala $ scala Test 在 delayed 方法内 获取时间,单位为纳秒 参数: 241550840475831 获取时间,单位为纳秒
Os exemplos do método para imprimir um atraso informações indicando o método, o método de impressão e depois retardar o valor recebido, e finalmente voltar a t.