Вызов функции Scala по имени
Scala интерпретатор двумя способами аналитические параметры функции (функции аргументы) в следующих случаях:
- Для вызова (вызов по значению): значение выражения параметра сначала вычисляется, а затем применяется к внутренним функциям;
- По имени вызова (вызов по имени): Выражение параметр напрямую не применяется к расчету внутренних функций
Перед входом в функции вызывается значением было рассчитано на значение выражения параметра, и называть выражением имя аргумента является значение, рассчитанное в пределах функции.
Это вызывает явление, вызывая каждое по имени, когда интерпретатор будет вычислен как только значение выражения для использования.
object Test { def main(args: Array[String]) { delayed(time()); } def time() = { println("获取时间,单位为纳秒") System.nanoTime } def delayed( t: => Long ) = { println("在 delayed 方法内") println("参数: " + t) t } }
Примеры выше, мы заявляем, задержанный метод, называемый по имени, чтобы задать имя переменной и введите с помощью => символ. Реализация указанного выше кода, выходные результаты являются следующими:
$ scalac Test.scala $ scala Test 在 delayed 方法内 获取时间,单位为纳秒 参数: 241550840475831 获取时间,单位为纳秒
Примеры способа, чтобы напечатать информацию о задержке с указанием метода, способ печати, а затем задержать полученное значение, и, наконец, вернуться к т.