Type Declaration Syntax

A type declaration specifies an identifier that denotes a type. The syntax for a type declaration is type newTypeName = type where newTypeName is a valid identifier. For example, given the type declaration type TMyString = string;

you can make the variable declaration var S: TMyString;

A type identifier's scope doesn't include the type declaration itself (except for pointer types). So you cannot, for example, define a record type that uses itself recursively.

When you declare a type that is identical to an existing type, the compiler treats the new type identifier as an alias for the old one. Thus, given the declarations type TValue = Real; var

X and y are of the same type; at runtime, there is no way to distinguish TValue from Real. This is usually of little consequence, but if your purpose in defining a new type is to utilize runtime type informationfor example, to associate a property editor with properties of a particular type - the distinction between 'different name' and 'different type' becomes important. In this case, use the syntax type newTypeName = typetype

For example, type TValue = type Real;

forces the compiler to create a new, distinct type called TValue.

For var parameters, types of formal and actual must be identical. For example, type

TMyType = type Integer procedure p(var t:TMyType); begin end;

procedure x; var m: TMyType; i: Integer; begin p(m); // Works p(i); // Error! Types of formal and actual must be identical. end;

Note: This only applies to var parameters, not to const or by-value parameters.

Project Management Made Easy

Project Management Made Easy

What you need to know about… Project Management Made Easy! Project management consists of more than just a large building project and can encompass small projects as well. No matter what the size of your project, you need to have some sort of project management. How you manage your project has everything to do with its outcome.

Get My Free Ebook

Post a comment