В Уроке 2 вы познакомились с некоторыми наиболее распространёнными типами и связанными с ними операциями и значениями. Пришло время узнать, как использовать эти типы и значения в коде.
Значения, используемые выражениями, иногда называются информацией или данными. Программам нужны данные, чтобы знать, что делать. При этом данные или значения можно хранить различными способами.
Также существуют различные виды данных.
Изменяемые и неизменяемые данные
Изменяемый означает «способный изменяться». Представьте себе мутанта, код ДНК которого изменился или мутировал.
Волны у берега изменчивы и постоянно меняются.
Когда что-то является неизменяемым, оно не может быть изменено. Если не учитывать землетрясения, приливные волны, взрывы или эрозию, то утёс, возвышающийся над пляжем, остаётся неизменяемым.
Но какое это имеет отношение к коду?
Если значение нельзя изменить во время работы программы, оно считается неизменяемым. Если значение изменяется во время выполнения программы на основе входных данных, поступающих откуда-то ещё, то это значение является изменяемым.
В Verse имеются встроенные типы, которых достаточно для выполнения базовых операций в большинстве программ. Эти встроенные типы являются основой для использования переменных и констант в Verse.
Переменные и константы
В программировании переменные и константы служат для хранения значений, используемых программой.
Когда программе нужны данные, чтобы определить, что произойдёт дальше, расчёты и решения компьютера основываются на значениях, хранящихся в переменных и константах кода.
Хотя термин переменная иногда используется для обозначения как переменных, так и констант, есть одно важное различие: во время работы программы переменные могут изменять свои значения, а значения констант изменить нельзя. Другими словами, значение переменной является изменяемым, тогда как значение константы является неизменяемым.
Синтаксис для переменных и констант
Синтаксис для переменной:
var (от англ. variable)в начале строки показывает, что это переменная.
Базовый синтаксис для константы:
Обратите внимание, что единственное различие в синтаксисе между переменной и константой заключается в том, что для переменной слово var указывается, а для константы нет.
Теперь разберём, что означает этот синтаксис:
name |
уникальное имя, которое программист присваивает данной переменной или константе. Помните, что |
type |
тип поясняет, что можно сделать со значением этой переменной. Обратите внимание, что имя и тип разделяются двоеточием :. |
value |
Для константы это значение остаётся постоянным. Значение: у константы оно остаётся постоянным, а у переменной оно является исходным и может изменяться во время выполнения программы. То есть это начальное значение. Это начальное значение. Обратите внимание, что тип и значение разделяются знаком равенства Задавать начальное значение для переменной необязательно, но рекомендуется. Установка значения константы обязательна. |
Идентификатор
Идентификатор — это уникальное имя, которое программист присваивает выражению.
Слова идентификатор и имя являются синонимами.
Правила и соглашения по именованию
Существуют правила именования данных в Verse. При создании переменных и констант помните об этих правилах именования:
- По возможности всегда присваивайте переменным (и другим выражениям) имена, которые отражают их назначение.
- Рекомендуется присваивать имена переменным последовательно, что облегчит восприятие кода другими пользователями (и вам же проще будет запомнить!).
- Первым символом в идентификаторе должна быть либо буква, либо символ подчёркивания (
_). - Символы, следующие за первым символом, должны быть буквами, цифрами или символом подчёркивания. Также можно использовать несколько подчёркиваний в имени или даже два или более подчёркиваний подряд.
- Ни идентификаторы переменных, ни идентификаторы констант не могут содержать пробелы.
- Язык Verse чувствителен к регистру, поэтому важно использовать заглавные буквы последовательно. Если пренебрегать этим правилом, в коде возникнут ошибки.
Полные правила именования в Verse описаны в руководстве по оформлению кода Verse.
Объявление переменной
Каждая переменная или константа состоит из трёх основных частей: это идентификатор (имя), тип хранимого значения и само значение.
var name : type = value
В Verse вы создаёте переменную, объявляя её. Для объявления переменной нужно указать все три части: идентификатор, тип и значение.
Инициализация
Инициализацией называется установка начального значения константы (или любого другого выражения). Инициализация требуется, когда вы объявляете переменную или константу.
Значение константы или переменной можно инициализировать с помощью оператора :=.
Обратите внимание, что при использовании этого оператора имя идёт перед :, тип указывается между : и =, а значение следует за =.
var Coins : int = 500
Эффективное использование констант
Когда у вас есть значение, которое появляется в нескольких местах кода и никогда не меняется, разумно использовать константу.
Помните литералы из Урока 2? Литерал — это значение, которое никогда не меняется. В идеале вы должны использовать литералы экономно.
Например, если в игре можно купить мышеловку за сто монет, то в программе можно вписать литеральное (неизменяемое) значение 100 везде, где код вычитает значение из Coins, когда игрок покупает мышеловку… Или (что гораздо лучше!) можно объявить и использовать константу, например CoinsPerMousetrap, которая содержит значение 100.
CoinsPerMousetrap : int = 100
Такое использование констант облегчает чтение кода как для вас, так и для ваших товарищей по команде на случай, если кто-то позже захочет изменить код, к которому долгое время не прикасались.
Ваш код также будет легче понять другим программистам, если вы будете использовать правильно именованные константы вместо необъяснимых литеральных значений.
Ещё одним преимуществом такого использования констант является то, что если вы решите изменить значение, например цену мышеловки, то потребуется обновить лишь константу, а не каждый отдельный экземпляр, где это значение используется.
По возможности используйте понятные имена констант. В приведённом выше примере CoinsPerMousetrap явно описывает константу количества монет, которые игрок тратит на покупку мышеловки.
Если у вас есть значение, которое не будет меняться, сохраните его с помощью константы.
Присвоение значения переменной
В отличие от констант, значения переменных могут изменяться во время работы программы.
Константы избавляют вас от необходимости вводить одно и то же значение снова и снова, но в чём преимущество использования переменной?
Дело в том, что иногда нужно иметь возможность изменять значение на основе каких-либо других входных данных.
Например, когда игрок покупает мышеловку, можно использовать следующую строку кода, чтобы вычесть количество монет, которые игрок тратит на мышеловку, из общего количества монет, которые есть у игрока:
set Coins = Coins - CoinsPerMousetrap
Давайте разберём эту строку кода:
Первая часть, set, представляет собой ключевое слово, встроенное в Verse. Оно служит для изменения значения переменной. Значит эта строка кода изменяет переменную Coins так, чтобы она равнялась разности значений Coins и CoinsPerMousetrap.
С помощью set значение можно изменить только у переменной. Ключевое слово set с константой использовать нельзя.
Coins и CoinsPerMousetrap в этом случае являются идентификаторами для выражений, которые уже определены в программе.
Выводы
- Переменные и константы используются для хранения значений.
- Основное различие между ними заключается в том, что значение константы нельзя изменять во время работы программы, а значение переменной можно.
- Переменные и константы — это выражения, которые выдают результаты при расчёте.
- Переменные и константы объявляются в Verse. Это делается путём присвоения выражению уникального имени (идентификатора), типа и значения.
- Когда вы задаёте начальное значение для выражения, это называется инициализацией.