Учебники

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

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

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

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

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

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

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

integer x, y, z

sequence a, b, x

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

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

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

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

Variable_Name = Variable_Value

Например —

#!/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 и «Джон» — это значения, присвоенные счетчику , милям и именным переменным соответственно. Эта программа дает следующий результат —

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

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

integer n = 5

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

integer n
n = 5

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

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

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

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

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

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

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

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

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

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

Если он объявлен внутри цикла for, while или switch , его область начинается с объявления и заканчивается соответствующим оператором end .

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

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

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

Область действия константы , которая не имеет модификатора области, начинается с объявления и заканчивается и заканчивается в файле, в котором она объявлена.

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

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

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

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

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

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

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

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

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

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