В этом руководстве мы рассмотрим использование переменных в Hack. В предыдущем уроке мы рассмотрели выражения в Hack: https://medium.com/@mikeabelar/web-development-with-hhvm-and-hack-expressions-c038182a9367

Что такое переменные?

Переменные могут содержать и хранить значение на протяжении всего выполнения программы. В прошлом уроке мы увидели, что можем генерировать значения с помощью выражений. Например, 5+5, что дает значение 10. Однако мы видим это выражение только один раз. Было бы удобно сохранять выражения и другие значения для дальнейшего использования. Здесь на помощь приходят переменные.

Примеры переменных

Для этого урока создайте новую папку. Внутри терминала создайте файл hhconfig:

touch .hhconfig

Затем создайте файл Hack, в котором мы можем экспериментировать с переменными:

touch variables.hack

Внутри файла вставьте следующее содержимое:

<<__EntryPoint>>
function main(): noreturn {
 // code here
 $sum = 5 + 5;
 print($sum);
 print("\n");
 exit(0);
}

Мы продолжим наш пример 5 + 5 из предыдущего урока. В этой функции мы объявляем переменную с именем sum, в которой хранится значение 5 + 5. Мы присваиваем значение переменной, используя знак равенства =. Мы говорим, что переменная равна результату 5 + 5. Переменная объявляется путем ввода имени переменной после знака доллара. Затем мы видим, какое значение хранится в $sum, распечатывая его. Следуя этому оператору печати, мы печатаем новую строку, чтобы мы могли легко увидеть результат переменной. Приведенный выше код напечатает 10. Помните, мы можем запустить код, запустив hhvm variables.hack (который должен быть продолжен hh_client variables.hack, который проверяет код на наличие проблем.

Помимо доступа к значению переменной, мы также можем переназначить переменные:

<<__EntryPoint>>
function main(): noreturn {
 // code here
 $sum = 5 + 5;
 print($sum);
 print("\n");
 $sum = 5 + 6;
 print($sum);
 print("\n");
 exit(0);
}

В этом случае мы сначала напечатаем 10, а затем 11.

Вы также можете ссылаться на текущее значение переменной при изменении значения переменной:

<<__EntryPoint>>
function main(): noreturn {
 // code here
 $sum = 5 + 5;
 print($sum);
 print("\n");
 $sum = $sum + 1;
 print($sum);
 print("\n");
 exit(0);
}

Точно так же этот код напечатает 10, а затем 11. Почему? sum сначала будет иметь значение 10. Затем мы присваиваем sum результат sum плюс 1, что равно 11.

У нас также могут быть переменные для хранения строк:

<<__EntryPoint>>
function main(): noreturn {
 // code here
 $string_variable = "Hi";
 print($string_variable);
 print("\n");
 exit(0);
}

Который печатает привет. В этом руководстве мы также рассмотрим конкатенацию строк. Конкатенация строк - это когда две строки объединяются в одну строку. Примером объединения «Привет» и «Привет» может быть «Привет, привет».

Ниже приведен пример конкатенации строк с использованием переменных:

<<__EntryPoint>>
function main(): noreturn {
 // code here
 $string_variable = "Hi";
 $string_variable = $string_variable ." Mike";
 print($string_variable);
 print("\n");
 exit(0);
}

Этот код напечатает «Привет, Майк». Примечание: мы используем . для объединения двух строк.

В следующем руководстве мы рассмотрим условные операторы: https://medium.com/@mikeabelar/web-development-with-hhvm-and-hack-4-conditional-statements-b212a7f65af8