Язык процедур 2-REXX для OS-2


Значение


Значение переменной, в отличие от имени, может изменяться. Когда Вы именуете переменную (придаете ей некоторое значение), то тем самым выполняете присваивание. Например, любой оператор типа

symbol = выражение является оператором присваивания. Таким образом, Вы приказываете интерпретатору вычислить значение выражения и поместить результат в поле переменной symbol. Это эквивалентно следующему: "Присвоить переменной symbol значение результата выражения" или каждый раз, когда переменная symbol появляется в тексте строки инструкции SAY без кавычек, выводить на ее месте значение выражения. Взаимосвязь между переменной и ее значением такая же, как и между почтовым ящиком и его содержимым. Номер почтового ящика всегда один и тот же, а его содержимое может поменяться в любое время. Ниже приведен пример еще одного оператора присваивания:

num1 = 10

Здесь num1 имеет то же смысловое значение, что и слово symbol в предыдущем примере, а значение 10 соответствует слову выражение.

Один из способов изменения значения переменной num1 - добавление некоторого числа или выражения к старому значению с помощью следующего оператора присваивания:

num1 = num1 + 3

Значение num1 теперь изменилось с 10 на 13.

Специальным соглашением в REXX является то, что в качестве первоначального значения переменной, которой не было присвоено значение, является ее имя, выводимое прописными буквами. Например, если Вы напишете в процедуре

list = 2 20 40 SAY list то на экран выведется следующая информация:

2 20 40

Таким образом, переменная list принимает значения, которые были ей присвоены. Однако, если Вы не присвоите переменной list никакого значения и просто напишете:

SAY list то на экран выведется:

LIST



Ниже приведен пример простой процедуры VARIABLE.CMD, которая присваивает значения переменным:

/* Присваивание значений переменным */ a = 'abc' SAY a b = 'def' SAY a b EXIT

Если Вы выполните процедуру VARIABLE, то протокол работы будет выглядеть следующим образом:

[C:\]VARIABLE abc abc def

[C:\]

Процесс присваивания значений прост, однако убедитесь в том, что имя, выбранное для переменной, не будет использовано непредумышленно, как показано на примере процедуры MEETING.CMD:

/* Непреднамеренная интерпретация переменной */ the='no' SAY Here is the person I want to meet EXIT

Протокол выполнения процедуры:

[C:\]MEETING HERE IS no PERSON I WANT TO MEET

[C:\]

Чтобы предотвратить непреднамеренное замещение слова переменной, заключите предложение в кавычки, как это сделано в процедуре MEETING.CMD, которая теперь уже правильно присваивает значение переменной:

/* Правильная интерпретация переменной the*/ the= 'no' SAY "Here is the person I want to meet" EXIT



Содержание раздела