Java: Аргументы как выражения
Рассмотрим вот такой код:
var result = Math.min(1, 5); // 1
Функция Math.min()
вызывается с аргументами 1
и 5
.
Мы выяснили, что выражения превращаются в значения. То есть с точки зрения Java, значения и выражения — это что-то схожее. Поэтому любые значения в программе технически можно заменить выражениями.
При вызове функции можно передать в неё аргументом выражение:
var result = Math.min(1, 2 + 3); // 1
Результат будет таким же, как в первом примере, потому что выражение 2 + 3
превратится в значение 5
, и произойдет вызов Math.min()
с аргументами 1
и 5
.
Более того, можно использовать переменные вперемешку со значениями и другими выражениями:
var number = 2 + 2;
var result = Math.min(1, 1 + number); // 1
Естественно, это работает не только с числами, а с любыми значениями и выражениями. Например, со строками.
Давайте подытожим. Взгляните на несколько примеров из текущего урока:
// простые вызовы
var result = Math.min(1, 5); // 1
// выражения в аргументах
var result = Math.min(1, 2 + 3); // 1
// выражения с переменными в аргументах
var number = 2 + 2;
var result = Math.min(1, 1 + number); // 1
Заметьте схожесть: во всех вызовах в функции передается какая-то информация, но иногда это простое, «готовое» значение, а иногда составное выражение — «неготовое» значение (2 + 3
, 1 + number
и т.д.). При этом во всех примерах передаётся два аргумента.
Задание
Вам доступна функция Functions.calculateDistanceBetweenTowns()
. Она принимает один аргумент, в котором содержатся названия двух городов через дефис. В ответ она возвращает расстояние между этими городами. Вот пример использования:
var distance = Functions.calculateDistanceBetweenTowns("Lannisport-Bayasabhad");
Напишите программу, которая использует функцию Functions.calculateDistanceBetweenTowns()
и выводит на экран расстояние между городами из объявленных переменных from
и to
.
Для решения этого упражнения внимательно изучите, как должен выглядеть аргумент функции Functions.calculateDistanceBetweenTowns()
. Будет полезно вспомнить урок про конкатенацию строк.