Эйфория - Переменные

Переменные - это не что иное, как зарезервированные ячейки памяти для хранения значений. Это означает, что при создании переменной вы резервируете некоторое пространство в памяти.

В зависимости от типа данных переменной интерпретатор выделяет память и решает, что можно сохранить в зарезервированной памяти. Следовательно, назначая переменным разные типы данных, вы можете хранить в этих переменных целые числа, десятичные дроби или символы. Типы данных Euphoria описаны в другой главе.

Эти ячейки памяти называются переменными, потому что их значение может быть изменено в течение срока их службы.

Объявление переменной

Переменные Euphoria должны быть явно объявлены для резервирования места в памяти. Таким образом, объявление переменной обязательно перед присвоением переменной значения.

Объявления переменных имеют имя типа, за которым следует список объявляемых переменных. Например -

integer x, y, z

sequence a, b, x

Когда вы объявляете переменную, вы даете ей имя и определяете, какие значения могут быть законно присвоены переменной во время выполнения вашей программы.

Простое объявление переменной не присваивает ей никакого значения. Если вы попытаетесь прочитать его, прежде чем присвоить ему какое-либо значение, Euphoria выдаст ошибку времени выполнения, поскольку «переменной xyz никогда не было присвоено значение» .

Присвоение значений

Знак равенства (=) используется для присвоения значений переменным. Переменная может быть назначена следующим образом -

Имя_переменной = значение_переменной

Например -

#!/home/euphoria/bin/eui

-- Here is the declaration of the variables.
integer counter
integer miles
sequence name

counter = 100 -- An integer assignment
miles = 1000.0 -- A floating point
name = "John" -- A string ( sequence )

printf(1, "Value of counter %d\n", counter )
printf(1, "Value of miles %f\n", miles )
printf(1, "Value of name %s\n", {name} )

Здесь 100, 1000.0 и «Джон» - это значения, присвоенные переменным counter , miles и name соответственно. Эта программа дает следующий результат -

Value of counter 100
Value of miles 1000.000000
Value of name John

Чтобы не забыть инициализировать переменную, а также потому, что это может сделать код более понятным для чтения, вы можете объединить объявление и присваивание -

integer n = 5

Это эквивалентно следующему -

integer n
n = 5

Область идентификатора

Область действия идентификатора - это описание того, какой код может получить к нему доступ. Код в той же области действия идентификатора может получить доступ к этому идентификатору, а код не в той же области, что и идентификатор, не может получить к нему доступ.

Объем переменной зависит от того, где и как она объявлена.

  • Если он объявлен в for, while, loop или же switch, его область действия начинается с объявления и заканчивается в соответствующем end заявление.

  • В if оператор, область действия начинается с объявления и заканчивается либо в следующем else, elsif или же end if заявление.

  • Если переменная объявлена ​​в подпрограмме, область видимости переменной начинается с объявления и заканчивается оператором end подпрограммы. Это известно как частная переменная.

  • Если переменная объявлена ​​вне подпрограммы, ее область действия начинается с объявления и заканчивается в конце файла, в котором она объявлена. Это называется модульной переменной.

  • Объем constant у которого нет модификатора области видимости, начинается с объявления и заканчивается в конце файла, в котором он объявлен.

  • Объем enum у которого нет модификатора области видимости, начинается с объявления и заканчивается в конце файла, в котором он объявлен.

  • Объем всех procedures, functions и types, у которых нет модификатора области, начинается в начале исходного файла и заканчивается в конце исходного файла, в котором они объявлены.

Константы, перечисления, переменные модуля, процедуры, функции и типы, не имеющие модификатора области видимости, называются locals. Однако эти идентификаторы могут иметь модификатор области, предшествующий их объявлению, что заставляет их область действия выходить за пределы файла, в котором они объявлены.

  • Если ключевое слово globalперед объявлением, область действия этих идентификаторов распространяется на все приложение. К ним можно получить доступ с помощью кода в любом месте файлов приложения.

  • Если ключевое слово publicпредшествует объявлению, область действия распространяется на любой файл, который явно включает файл, в котором объявлен идентификатор, или на любой файл, который включает файл, который, в свою очередь, общедоступный, включает файл, содержащий общедоступное объявление.

  • Если ключевое слово export перед объявлением, область действия распространяется только на любой файл, который непосредственно включает файл, в котором объявлен идентификатор.

Когда ты includeфайл Euphoria в другом файле, для файла, выполняющего включение, доступны только идентификаторы, объявленные с использованием модификатора области . Другие объявления во включенном файле невидимы для файла, выполняющего включение .