Var в паскале что это
Перейти к содержимому

Var в паскале что это

  • автор:

Var в паскале что это

Язык:
Русский
English

Объявление переменной связывает идентификатор и его тип с областью памяти, в которой будут храниться значения этого типа.

Синтаксис

var
идентификатор, . идентификатор : тип;
.
идентификатор, . идентификатор : тип;

Замечания

Для указания абсолютного адреса в памяти может использоваться зарезервированное слово Absolute .

Зарезервированное слово var также используется для объявления переменного параметра .

Примеры

< Объявления переменных >
var
X, Y, Z : Real;
I, J, K : Integer;
Done, Error : Boolean;
Vector : array[1 .. 10] of Real;
Name : String[15];
InFile, OutFile : Text;
Letters : set of ‘A’ .. ‘Z’;

Ада

— Объявления переменных
X, Y, Z : Float;
I, J, K : Integer;
Done, Error : Boolean;
Vector : array (1 .. 10) of Float;
Name : Name_Type; — экземпляр пакета Ada.Strings.Bounded (15)
File_In, File_Out : File_Type; — пакет Ada.Text_IO
Letters : array (Character range ‘A’ .. ‘Z’) of Boolean;

Переменные можно инициализировать при объявлении. В том числе, можно инициализировать локальные переменные:

function Calmed_Down_Input return String is
S : String := Get_Line;
begin
if S’Length = 0 then
return «»;
end if;
case S (S’Last) is
when ‘.’ => return S;
when ‘?’ | ‘!’ => S (S’Last) := ‘.’; return S;
when others => return S & ‘.’;
end case;
end Calmed_Down_Input;

Var/ru

Var является ключевым словом, которое используется для двух разных целей:

  • обозначает начало секции объявления переменных
  • указывает, что параметры в функцию или процедуру передаются по ссылке вместо передачи по значению

Объявление переменных

Var используется для обозначения секции, где объявляются переменные и их типы. Переменные обычно объявляются в начале программы, процедуры, функции или модуля.

var age: integer; 

Если вы собираетесь использовать несколько переменных одного и того же типа, они могут быть сгруппированы, поэтому они определяются одинаково. В этом случае переменные должны отделяться друг от друга запятой.

var FirstName, LastName, address: string; 

Передача по ссылке

Когда var используется перед параметром процедуры или функции, то это означает, что параметр является параметром-переменной. Параметр-переменная используется для получения данных из процедуры или функции, а также для передачи данных в процедуру или функцию:

procedure foo( var v1: sometype; out v2: sometype; const v3: sometype ) begin v1 := v1 + v3; // ввод и возврат значения v2 := v3; // только возврат значения v3 := myconst; // неизменный параметр. только ввод end; 

См. также

  • Параметр-переменная
  • Локальные переменные
  • Глобальные переменные

Оператор описания переменной

В PascalABC.NET можно описывать переменные внутри составного оператора begin-end в специальном операторе описания переменной. Такие описания называются внутриблочными.

Внутриблочное описание имеет одну из форм:

var список имен : тип ;

var имя : тип := выражение ;

var имя : тип = выражение ; // Для совместимости с Delphi

var имя := выражение ;

Имена в списке перечисляются через запятую. Например:

begin
var
a1,a2,a3: integer;
var n: real := 5;
var s := ‘ ‘;
.
end
.

В последнем случае тип переменной автовыводится по типу выражения в правой части. Автовыведение типа активно используется при инициализации переменной вызовом конструктора или функции. возвращающей объект:

begin
var
l := new List;
var a := Seq(1,3,5); // тип a выводится по типу возвращаемого значения Seq: array of integer
end.

Кортежное присваивание с описанием переменных

Кортежное присваивание (распаковку кортежа в переменные) можно совмещать с описанием переменных:

var t := (1,2);
(var a, var b) := (1,2);

var (a,b) := (1,2);

Распаковка кортежа в переменные часто используется при возвращении функцией кортежа:

function SP(a,b: real) := (a*b,2*(a+b));
.
var (S,P) := SP(2,3);

Инициализация лямбда-выражением

Автовыведение типа при описании невозможно при инициализации переменной лямбда-выражением:

// var f := x -> x*x; // так нельзя!
var f : Func := x -> x*x;

Внутриблочные описания используются чтобы не захламлять раздел описаний описанием вспомогательных переменных. Кроме этого, внутриблочные описания позволяют вводить переменные именно в тот момент когда они впервые потребовались. Оба этих фактора существенно повышают читаемость программы.

Описание переменных

Переменные могут быть описаны в разделе описаний, а также непосредственно внутри любого блока begin / end .

Раздел описания переменных начинается с ключевого слова var , после которого следуют элементы описания вида

список имен : тип ;

имя : тип := выражение ;

имя : тип = выражение ; // для совместимости с Delphi

имя := выражение ;

Имена в списке перечисляются через запятую. Например:

var
a,b,c: integer;
d: real := 3.7;
s := ‘PascalABC forever’;
al := new List;
p1 := 1;

В последних трех случаях тип переменной автоматически определяется по типу правой части.

Переменные могут описываться непосредственно внутри блока. Такие описания называются внутриблочными и представляют собой оператор описания переменной.

Кроме того, переменные-параметры цикла могут описываться в заголовке операторов for и foreach .

Глобальные переменные инициализируются нулевыми значениями. Для локальных переменных это не гарантируется — их надо инициализировать явно.

Совмещение описания переменных и кортежного присваивания

Кортежное присваивание (распаковку кортежа в переменные) можно совмещать с описанием переменных:

var t := (1,2);
(var a, var b) := (1,2);

var (a,b) := (1,2);

Распаковка кортежа в переменные часто используется при возвращении функцией кортежа:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *