W Cat - Описание языка PascalABC.NET
- Название:Описание языка PascalABC.NET
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:неизвестен
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
W Cat - Описание языка PascalABC.NET краткое содержание
PascalABC.NET — это язык программирования Паскаль нового поколения, включающий классический Паскаль, большинство возможностей языка Delphi, а также ряд собственных расширений. Он реализован на платформе Microsoft.NET и содержит все современные языковые средства: классы, перегрузку операций, интерфейсы, обработку исключений, обобщенные классы и подпрограммы, сборку мусора, лямбда-выражения, средства параллельного программирования.
PascalABC.NET является мультипарадигменным языком: на нем можно программировать в структурном, объектно-ориентированном и функциональном стилях.
PascalABC.NET — это также простая и мощная интегрированная среда разработки, поддерживающая технологию IntelliSense, содержащая средства автоформатирования, встроенный отладчик и встроенный дизайнер форм.
Описание языка PascalABC.NET - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
// s -= s1 эквивалентно s := s - s1
// s *= s1 эквивалентно s := s * s1
s += [3..6]; // s = [2..6]
s -= [3]; // s = [2,4..6]
s *= [1..5]; // s = [2,4..5]
end.
К множествам с базовыми элементами одного типа применимы также операции сравнения = (равенство), <> (неравенство), <= (нестрого вложено), < (строго вложено), >= (нестрого содержит) и > (строго содержит):
[1..3] = [1,2,3]
['a'..'z'] <> ['0'..'9']
[2..4] < [1..5]
[1..5] <= [1..5]
[1..5] > [2..4]
[1..5] >= [1..5]
Но неверно, что [1..5] < [1..5].
Наконец, операция inопределяет, принадлежит ли элемент множеству: 3 in[2..5] вернет True, 1 in[2..5] вернет False.
Операция @
Операция @ применяется к переменной и возвращает ее адрес. Тип результата представляет собой типизированный указатель на тип переменной. Например:
var
r: real;
pr: ^real := @r;
Операции is и as
Операция isпредназначена для проверки того, имеет ли классовая переменная указанный динамический тип. Операция asпозволяет безопасно преобразовать переменную одного классового типа к другому классовому типу (в отличие от явного приведения классового типа).
Операция isимеет вид:
a is ClassType
и возвращает True если a принадлежит к классу ClassType или одному из его потомков.
Например, если Base и Derived - классы, причем, Derived - потомок Base, переменные b и d имеют соответственно типы Base и Derived, то выражения b isBase и d isBase возвращают True, а b isDerived - False.
Операция asимеет вид:
a as ClassType
и возвращает ссылку на объект типа ClassType если преобразование возможно, в противном случае возвращает nil.
Например, в программе
type
Base = class
end;
Derived = class(Base)
procedurep;
begin
end;
end;
varb: Base;
begin
b := new Base;
writeln(b isDerived);
b := new Derived;
writeln(b isDerived);
end.
первый раз выводится False, второй - True.
Операции isи asиспользуются для работы с переменной базового класса, содержащей объект производного класса.
1 способ.
ifb isDerived then
Derived(b).p;
2 способ.
vard: Derived := b asDerived;
d.p;
Операция new
Операция newимеет вид:
new ИмяКласса ( ПараметрыКонструктора )
Она вызывает конструктор класса ИмяКласса и возвращает созданный объект.
Например:
type
My = class
constructorCreate(i: integer);
begin
end;
end;
varm: My := newMy(5);
Эквивалентным способом создания объекта является вызов конструктора в стиле Object Pacal:
varm: My := My.Create(5);
Создание объекта класса при инициализации переменной проще проводить, используя автоопределение типа :
varm := newMy(5);
В записи также могут быть определены конструкторы, которые вызываются аналогично. Но в отличие от класса вызов конструктора записи не выделяет память (она уже выделена) и только заполняет значения полей.
Операции typeof и sizeof
Операция sizeof( имя типа ) возвращает для этого типа его размер в байтах.
Операция typeof( имя типа ) возвращает для этого типа объект класса System.Type. Приведем пример использования typeof:
type
Base = class... end;
Derived = class(Base) ... end;
varb: Base := new Derived;
begin
writeln(b.GetType = typeof(Derived));
end.
Операция явного приведения типов
Операция явного приведения типов имеет вид
ИмяТипа ( выражение )
и позволяет преобразовать выражение к типу ИмяТипа . Тип выражения и тип с именем ИмяТипа должны оба принадлежать либо к порядковому типу, либо к типу указателя, либо один тип должен быть наследником другого, либо тип выражения должен поддерживать интерфейс с именем ИмяТипа . В случае указателей запрещено преобразовывать типизированный указатель к типу указателя на другой тип.
Пример.
type
pinteger = ^integer;
Season = (Winter,Spring,Summer,Autumn);
vari: integer;
b: byte;
p: pointer := @i;
s: Season;
begin
i := integer('z');
b := byte(i);
i := pinteger(p);
s := Season(1);
end.
При приведении размерных типов к типу Object происходит упаковка.
Пример.
vari: integer := 5;
begin
var o: Object := Object(i);
end.
Приоритет операций
Приоритет определяет порядок выполнения операций в выражении. Первыми выполняются операции, имеющие высший приоритет. Операции, имеющие одинаковый приоритет, выполняются слева направо.
Таблица приоритетов операций
@, not, ^, +, - (унарные), new |
1 (наивысший) |
*, /, div, mod, and, shl, shr, as, is |
2 |
+, - (бинарные), or, xor |
3 |
=, <>, <, >, <=, >=, in, = |
4 (низший) |
Для изменения порядка выполнения операций в выражениях используются скобки.
Операторы
Операторы: обзор
В PascalABC.NETопределены следующие операторы.
Операторы присваивания
Составной оператор
Оператор описания переменной
Оператор цикла for
Оператор цикла foreach
Операторы цикла while и repeat
Условный оператор if
Оператор выбора варианта case
Оператор вызова процедуры
Оператор try except
Оператор try finally
Оператор raise
Операторы break, continue и exit
Оператор goto
Оператор lock
Оператор with
Пустой оператор
Оператор присваивания
Оператор присваивания имеет вид:
переменная := выражение
В качестве переменной может быть простая переменная, разыменованный указатель, переменная с индексами или компонент переменной типа запись. Символ := называется значком присваивания. Выражение должно быть совместимо по присваиванию с переменной.
Оператор присваивания заменяет текущее значение переменной значением выражения.
Например:
i := i + 1; // увеличивает значение переменной i на 1
В PascalABC.NETопределены также операторы присваивания со значками +=, -=, *=, /=. Для числовых типов действие данных операторов описано здесь. Кроме того, использование операторов += и *= для строк описано здесь и операторов +=, -= и *= для множеств - здесь. Их действие для процедурных переменных описано здесь.
Операторы +=, -=, *=, /= имеют следующий смысл: a #= b означает a := a # b, где # - знак операции +, -, *, /.
Например:
a += 3; // увеличить a на 3
b *= 2; // увеличить b в 2 раза
Опертор /= неприменим, если выражение слева - целое.
Читать дальшеИнтервал:
Закладка: