ГЛАВА 5 - ОПЕРАТОРЫ ПРИСВОЕНИЯ
Операторы присвоения.
Простые операторы присвоения
назначение = источник
назначение | Должно быть меткой или переменной |
источник | Числовая или строковая константа, переменная, функция или выражение. |
Знак = присваивает значение ИСТОЧНИКа НАЗНАЧЕНИЮ; помещает значение выражения - ИСТОЧНИКа в переменную - НАЗНАЧЕНИЕ. Если ИСТОЧНИК и НАЗНАЧЕНИЕ являются разными типами данных, то результат зависит от Правил Преобразования Данных.
Пример:
Name = 'JONES' !Variable = string constant
PI = 3.14159 !Variable = numeric constant
Cosine = SORT(1-Sine*Sine) !Variable = functi on return value
A = B + C + 3 !Variable = numeric expressio
Name = CLIP(FirstName) &' ' Initial &'. '& LastName
!Variable = string expression
См. также: Правила Преобразования Данных
Операторы присвоения-операции
назначение += источник
назначение -= источник
назначение *= источник
назначение /= источник
назначение ^= источник
назначение %= источник
назначение | Должно быть меткой или переменной |
источник | Числовая или строковая константа, переменная, функция или выражение. |
Операторы присвоения-операции выполняют арифметические операции над переменной. Ниже, в примерах, операторы справа и слева функционально эквивалентны, хотя операторы присвоения-операции действуют более эффективно.
Пример:
Оператор присваивания Функциональный эквивалент
A += 1 A = A + 1
A -= B A = A - B
A *= -5 A = A * (-5)
A /= 100 A = A / 100
A ^= I+1 A = ^(I + 1)
A %= 7 A = A % 7
CLEAR (очистить переменную)
CLEAR(метка[,n])
метка | Метка переменной.
|
n | Числовая константа; 1 или -1. Этот параметр задает значение, которым инициализируется переменная. Если n=1, то переменная получает максимально возможное для этого типа данных значение. Для STRING, PSTRING и CSTRING, это ASCII 255. Если n=-1, то переменная получает минимально возможное для данного типа данных значение. Для STRING, PSTRING и CSTRING это ASCII 0.
|
Оператор CLEAR очищает переменную, указанную МЕТКой. Если n пропущено, то числовые переменные сбрасываются в нуль, а строки заполняются пробелами. Если метка принадлежит структуре GROUP, RECORD или QUEUE, то все переменные в этой структуре очищаются. Если переменная имеет атрибут DIM, то очищается целиком массив. Одиночный элемент массива не может быть очищен.
Пример:
CLEAR(Count) !Clear a variable
CLEAR(Cus:Record) !Clear the record structure
CLEAR(Amount,l) !Clear variable to highest possible value
CLEAR(Amount,-I) !Clear variable to lowest possible
ПРАВИЛА ПРЕОБРАЗОВАНИЯ ДАННЫХ
Язык Clarion производит автоматическую конверсию типов данных. Тем не менее, некоторые вариации могут породить несоответствие
источника и назначения (source & destination). Присвоение "выходящего-за-рамки" значения приводит к непредсказуемым результатам
Типы данных PSTRING и CSTRING обрабатываются так же, как STRING, потому что они преобразуются в промежуточные значения типаSTRING
для всех операций. Типы DATE и TIME преобразуются в Кларионовские Стандартные Дату и Время и обрабатываются как LONG.
Ниже приведены правила преобразования данных из ИСТОЧНИКа в НАЗНАЧЕНИЕ:
BYTE = SHORT
BYTE = USHORT
BYTE = LONG
BYTE = ULONG
Знаковый бит ИСТОЧНИКа игнорируется. НАЗНАЧЕНИЕ получает младшие 8 бит ИСТОЧНИКа.
BYTE = DECIMAL
BYTE = PDECIMAL
BYTE = REAL
BYTE = SREAL
Знаковый бит ИСТОЧНИКа игнорируется. НАЗНАЧЕНИЕ получает младшие 8 бит ИСТОЧНИКа. Дробная часть ИСТОЧНИКа отсекается.
BYTE = STRING
BYTE = CSTRING
BYTE = PSTRING
Если в строке только цифры, то НАЗНАЧЕНИЕ получает их
значение.
SHORT = BYTE
НАЗНАЧЕНИЕ получает значение ИСТОЧНИКа.
SHORT = USHORT
SHORT = LONG
SHORT = ULONG
НАЗНАЧЕНИЕ получает знак и младшие 15 бит ИСТОЧНИКа.
SHORT = DECIMAL
SHORT = PDECIMAL
SHORT = REAL
SHORT = SREAL
НАЗНАЧЕНИЕ получает знак и младшие 15 бит ИСТОЧНИКа. Дробная часть ИСТОЧНИКа отсекается.
SHORT = STRING
SHORT = CSTRING
SHORT = PSTRING
ИСТОЧНИК должен быть набором цифр БЕЗ знаков форматирования. НАЗНАЧЕНИЕ получает знак и целую часть числа. Дробная часть ИСТОЧНИКа отсекается, хвостовые пробелы игнорируются.
USHORT = BYTE
НАЗНАЧЕНИЕ получает значение ИСТОЧНИКа.
USHORT = SHORT
USHORT = LONG
USHORT = ULONG
НАЗНАЧЕНИЕ получает младшие 16 бит ИСТОЧНИКа. Знак ИСТОЧНИКа игнорируется.
USHORT = DECIMAL
USHORT = PDECIMAL
USHORT = REAL
USHORT = SREAL
НАЗНАЧЕНИЕ получает младшие 16 бит из целой части ИСТОЧНИКа. Дробная часть ИСТОЧНИКа отсекается и знак игнорируется.
USHORT = STRING
USHORT = CSTRING
USHORT = PSTRING
ИСТОЧНИК должен быть набором цифр без символов форматирования. НАЗНАЧЕНИЕ получает целую часть числа. Дробная часть ИСТОЧНИКа отсекается, а знак и хвостовые пробелы игнорируются.
LONG = BYTE
LONG = SHORT
LONG = USHORT
LONG = ULONG
НАЗНАЧЕНИЕ получает знак и значение ИСТОЧНИКа.
LONG = DECIMAL
LONG = PDECIMAL
LONG = REAL
LONG = SREAL
НАЗНАЧЕНИЕ получает знак и младшие 31 бит ИСТОЧНИКа. Дробная часть ИСТОЧНИКа отсекается.
LONG = STRING
LONG = CSTRING
LONG = PSTRING
ИСТОЧНИК должен быть набором цифр без символов форматирования. НАЗНАЧЕНИЕ получает знак и целую часть числа. Десятичная часть ИСТОЧНИКа отсекается, а хвостовые пробелы игнорируются.
DATE = BYTE
DATE = SHORT
DATE = USHORT
DATE = ULONG
НАЗНАЧЕНИЕ получает значение ИСТОЧНИКа в виде Кларионовской Стандартной Даты.
DATE = DECIMAL
DATE = PDECIMAL
DATE = REAL
DATE = SREAL
НАЗНАЧЕНИЕ получает младшие 31 бит ИСТОЧНИКа в виде
Кларионовской Стандартной Даты. Десятичная часть ИСТОЧНИКа отсекается.
DATE = STRING
DATE = CSTRING
DATE = PSTRING
ИСТОЧНИК должен быть набором цифр без символов форматирования. НАЗНАЧЕНИЕ получает целую часть числа как
Кларионовскую Стандартную Дату. Дробная часть ИСТОЧНИКа отсекается, а хвостовые пробелы игнорируются.
TIME = BYTE
TIME = SHORT
TIME = USHORT
TIME = ULONG
НАЗНАЧЕНИЕ получает значение источника как Клaрионовское Стандартное Время.
TIME = DECIMAL
TIME = PDECIMAL
TIME = REAL
TIME = SREAL
НАЗНАЧЕНИЕ получает младшие 31 бит ИСТОЧНИКа как Кларионовское Стандартное Время. Дробная часть ИСТОЧНИКа
отсекается.
TIME = STRING
TIME = CSTRING
TIME = PSTRING
ИСТОЧНИК должен быть набором цифр без символов форматирования. НАЗНАЧЕНИЕ получает целую часть ИСТОЧНИКа в виде Кларионовского Стандартного Времени. Дробная часть отсекается, а хвостовые пробелы игнорируются.
ULONG = BYTE
ULONG = SHORT
ULONG = USHORT
ULONG = LONG
НАЗНАЧЕНИЕ получает младшие 32 бита ИСТОЧНИКа. Знак
ИСТОЧНИКа игнорируется.
ULONG = DECIMAL
ULONG = PDECIMAL
ULONG = REAL
ULONG = SREAL
НАЗНАЧЕНИЕ получает младшие 32 бита от целой части ИС-
ТОЧНИКа. Дробная часть отсекается, а знак игнорирует-
ся.
ULONG = STRING
ULONG = CSTRING
ULONG = PSTRING
ИСТОЧНИК должен быть набором цифр без символов форматирования. НАЗНАЧЕНИЕ получает целую часть числа.
Дробная часть отсекается, а знак и хвостовые пробелы
игнорируются.
REAL = BYTE
REAL = SHORT
REAL = USHORT
REAL = LONG
REAL = ULONG
НАЗНАЧЕНИЕ получает как всю целую часть, так и знак
ИСТОЧНИКа.
REAL = DECIMAL
REAL = PDECIMAL
REAL = SREAL
НАЗНАЧЕНИЕ получает знак, целую и дробные части ИСТОЧНИКа.
REAL = STRING
REAL = CSTRING
REAL = PSTRING
ИСТОЧНИК должен быть набором цифр без символов форматирования. НАЗНАЧЕНИЕ получает знак, целую и дробную
части числа. Хвостовые пробелы игнорируются.
SREAL = BYTE
SREAL = SHORT
SREAL = USHORT
SREAL = LONG
SREAL = ULONG
НАЗНАЧЕНИЕ получает знак и значение ИСТОЧНИКа.
SREAL = DECIMAL
SREAL = PDECIMAL
SREAL = REAL
НАЗНАЧЕНИЕ получает знак, целую и дробную части ИСТОЧНИКа.
SREAL = STRING
SREAL = CSTRING
SREAL = PSTRING
ИСТОЧНИК должен быть набором цифр без символов форматирования. НАЗНАЧЕНИЕ получает знак, целую и дробную
части числа. Хвостовые пробелы игнорируются.
DECIMAL = BYTE
DECIMAL = SHORT
DECIMAL = USHORT
DECIMAL = LONG
DECIMAL = ULONG
DECIMAL = PDECIMAL
НАЗНАЧЕНИЕ получает знак и значение ИСТОЧНИКа.
DECIMAL = REAL
DECIMAL = SREAL
НАЗНАЧЕНИЕ получает знак и целую часть ИСТОЧНИКа, а
так же старшие биты дробной части. Самая старшая часть
дробной части (?) округляется в НАЗНАЧЕНИИ.
DECIMAL = STRING
DECIMAL = CSTRING
DECIMAL = PSTRING
Источник должен быть набором цифр без символов форматирования. НАЗНАЧЕНИЕ получает знак, целую и дробную
части числа. Хвостовые пробелы игнорируются.
PDECIMAL = BYTE
PDECIMAL = SHORT
PDECIMAL = USHORT
PDECIMAL = LONG
PDECIMAL = ULONG
PDECIMAL = DECIMAL
НАЗНАЧЕНИЕ получает знак и значение ИСТОЧНИКа.
PDECIMAL = REAL
PDECIMAL = SREAL
НАЗНАЧЕНИЕ получает знак и целую часть ИСТОЧНИКа, а
так же старшие биты дробной части. Самая старшая часть
дробной части (?) округляется в НАЗНАЧЕНИИ.
PDECIMAL = STRING
PDECIMAL = CSTRING
PDECIMAL = PSTRING
Источник должен быть набором цифр без символов форматирования. НАЗНАЧЕНИЕ получает знак, целую и дробную
части числа. Хвостовые пробелы игнорируются.
STRING = BYTE
STRING = SHORT
STRING = USHORT
STRING = LONG
STRING = ULONG
НАЗНАЧЕНИЕ получает знак и неформатированное число. В
НАЗНАЧЕНИИ, число выравнивается влево.
STRING = DECIMAL
STRING = PDECIMAL
STRING = REAL
STRING = SREAL
НАЗНАЧЕНИЕ получает знак, целую и дробную части ИСТОЧНИКа. В НАЗНАЧЕНИИ, число выравнивается влево.
CSTRING = BYTE
CSTRING = SHORT
CSTRING = USHORT
CSTRING = LONG
CSTRING = ULONG
НАЗНАЧЕНИЕ получает знак и неформатированное число. В
НАЗНАЧЕНИИ, число выравнивается влево.
CSTRING = DECIMAL
CSTRING = PDECIMAL
CSTRING = REAL
CSTRING = SREAL
НАЗНАЧЕНИЕ получает знак, целую и дробную части ИСТОЧНИКа. В НАЗНАЧЕНИИ, число выравнивается влево.
PSTRING = BYTE
PSTRING = SHORT
PSTRING = USHORT
PSTRING = LONG
PSTRING = ULONG
НАЗНАЧЕНИЕ получает знак и неформатированное число. В
НАЗНАЧЕНИИ, число выравнивается влево.
PSTRING = DECIMAL
PSTRING = PDECIMAL
PSTRING = REAL
PSTRING = SREAL
НАЗНАЧЕНИЕ получает знак, целую и дробную части ИСТОЧНИКа. В НАЗНАЧЕНИИ, число выравнивается влево.
Назад | Содержание | Вперед