* T1, T2 - классовые типы, один из них - наследник другого. Поскольку в PascalABC.NET все типы кроме указателей являются потомками типа Object, то значение любого типа (кроме указателей) можно присвоить переменной типа Object
* T1 - тип интерфейса, T2 - тип класса, реализующего этот интерфейс
Если тип T2 совместим по присваиванию с типом T1, то говорят также, что тип T2
Отображение на типы .NET
Стандартные типы PascalABC.NET реализуются типами библиотеки классов .NET. Далее приводится таблица соответствий стандартных типов PascalABC.NET и типов .NET.
Тип PascalABC.NET | Тип .NET |
int64 | System.Int64 |
uint64 | System.UInt64 |
integer, longint | System.Int32 |
longword, cardinal | System.UInt32 |
BigInteger | System.BigInteger |
smallint | System.Int16 |
word | System.UInt16 |
shortint | System.SByte |
byte | System.Byte |
boolean | System.Boolean |
real | System.Double |
double | System.Double |
char | System.Char |
string | System.String |
object | System.Object |
arrayof T | T[] |
record | struct |
Выражения и операции
Выражения и операции: обзор
Выражение - это конструкция, возвращающая значение некоторого типа. Простыми выражениями являются переменные и константы, например:
3.14
x
Более сложные выражения строятся из простых с помощью операций, вызовов функций и скобок. Данные, к которым применяются операции, называются
В PascalABC.NET имеются следующие операции: @, not, ^, *, /, div, mod, and, shl, shr, +, -, or, xor, =, >, <, <>, <=, >=, as, is, in, =>, а также операция new и операция приведения типа.
Операции @, -, +, ^, not, операция приведения типа и операция new являются унарными (имеют один операнд), остальные являются бинарными (имеют два операнда), операции + и - являются и бинарными и унарными.
Порядок выполенения операций определяется их приоритетом. В языке PascalABC.NET четыре уровня приоритетов операций, задаваемых таблицей приоритетов.
Для типов, определенных пользователем, ряд операций можно перегружать.
* Арифметические операции
* Логические операции
* Операции сравнения
* Строковые операции
* Побитовые операции
* Операции с множествами
* Операция явного приведения типов
* Операции is и as
* Операция new
* Операция @ получения адреса
* Операции с указателями
* Операции typeof и sizeof
Арифметические операции
К
| shortint | byte | smallint | word | integer | longword | int64 | uint64 | BigInteger | single | real |
shortint | integer | integer | integer | integer | integer | int64 | int64 | uint64 | BigInteger | single | real |
byte | integer | integer | integer | integer | integer | longword | int64 | uint64 | BigInteger | single | real |
smallint | integer | integer | integer | integer | integer | int64 | int64 | uint64 | BigInteger | single | real |
word | integer | integer | integer | integer | integer | longword | int64 | uint64 | BigInteger | single | real |
integer | integer | integer | integer | integer | integer | int64 | int64 | uint64 | BigInteger | single | real |
longword | int64 | longword | int64 | longword | int64 | longword | uint64 | uint64 | BigInteger | single | real |
int64 | int64 | int64 | int64 | int64 | int64 | uint64 | int64 | uint64 | BigInteger | single | real |
uint64 | uint64 | uint64 | uint64 | uint64 | uint64 | uint64 | uint64 | uint64 | BigInteger | single | real |
BigInteger | BigInteger | BigInteger | BigInteger | BigInteger | BigInteger | BigInteger | BigInteger | BigInteger | BigInteger | - | - |
single | single | single | single | single | single | single | single | single | - | single | real |
real | real | real | real | real | real | real | real | real | - | real | real |