|
| ||||||||||||
| ||||||||||||
ГЛАВА 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])
Оператор 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
НАЗНАЧЕНИЕ получает знак, целую и дробную части ИСТОЧНИКа. В НАЗНАЧЕНИИ, число выравнивается влево. Назад | Содержание | Вперед |
|
CITForum © 1997–2025