Difference between revisions of "Colon"
From Lazarus wiki
Jump to navigationJump to search(14 intermediate revisions by 8 users not shown) | |||
Line 1: | Line 1: | ||
− | + | {{Colon}} | |
− | + | <div style="float:right; margin: 0 25px 20px 0; padding:50px; font-size:500%; font-family: Georgia; background-color: #f9f9f9; border: 2px solid #777777;">:</div> | |
− | |||
− | + | The symbol <syntaxhighlight lang="pascal" inline>:</syntaxhighlight>, pronounced “colon”, is used in [[Pascal]] in several ways: | |
+ | * in an [[Identifier|identifier]] declaration it separates the [[Type|type]] | ||
+ | ** most notably in [[Var|<syntaxhighlight lang="pascal" inline>var</syntaxhighlight>]] sections | ||
+ | ** but also in [[Const|<syntaxhighlight lang="pascal" inline>const</syntaxhighlight>]] sections (in case of ''explicitely'' typed constants) | ||
+ | ** [[Procedure|<syntaxhighlight lang="pascal" inline>procedure</syntaxhighlight>]] and [[Function|<syntaxhighlight lang="pascal" inline>function</syntaxhighlight>]] parameters have a type, too | ||
+ | ** and return values of functions (including operator overloads) | ||
+ | ** as well as [[Property|properties]] | ||
+ | ** in general, everywhere where a new identifier associated with some memory, is introduced (also custom structured type definitions) | ||
+ | * in [[Case|<syntaxhighlight lang="pascal" inline>case</syntaxhighlight>]] selectors it closes a match-list | ||
+ | * in [[Label|label]] definitions the colon seperates the instruction from the label name | ||
+ | * also some routines, especially the [[Str|<syntaxhighlight lang="pascal" inline>Str</syntaxhighlight>]], [[Write|<syntaxhighlight lang="pascal" inline>write</syntaxhighlight>]] and <syntaxhighlight lang="pascal" inline>writeLn</syntaxhighlight> procedures accept further parameters via colon separated arguments | ||
+ | * Offset / segment separation under DOS <syntaxhighlight lang="pascal" inline>Mem[$B800:$0000]</syntaxhighlight> | ||
− | {{ | + | The following example shows the most prevalent usage scenarios: |
− | + | <syntaxhighlight lang="pascal" line highlight="3,6,10,13,23"> | |
+ | program colonDemo(input, output, stderr); | ||
+ | |||
+ | procedure numberReport(const i: int64); | ||
+ | begin | ||
+ | case i of | ||
+ | low(i)..-1: | ||
+ | begin | ||
+ | writeLn('Your number is negative. ☹'); | ||
+ | end; | ||
+ | 1..high(i): | ||
+ | begin | ||
+ | // right aligns to a width of 24 characters | ||
+ | writeLn(i:24); | ||
+ | end; | ||
+ | else | ||
+ | begin | ||
+ | writeLn('You''ve entered zero.'); | ||
+ | end; | ||
+ | end; | ||
+ | end; | ||
+ | |||
+ | var | ||
+ | i: int64; | ||
+ | |||
+ | begin | ||
+ | writeLn('Enter a number:'); | ||
+ | readLn(i); | ||
+ | numberReport(i); | ||
+ | end. | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | == other remarks == | ||
+ | * Colon appears in the assignment operator [[Becomes|<syntaxhighlight lang="pascal" inline>:=</syntaxhighlight>]]. | ||
+ | * In [[ASCII]] the character colon <syntaxhighlight lang="pascal" inline>:</syntaxhighlight> has the value <syntaxhighlight lang="pascal" inline>58</syntaxhighlight>. | ||
+ | |||
+ | |||
+ | {{Symbols}} | ||
+ | |||
+ | [[Category:Code]] |
Latest revision as of 17:15, 6 August 2022
│
English (en) │
suomi (fi) │
français (fr) │
русский (ru) │
中文(中国大陆) (zh_CN) │
:
The symbol :
, pronounced “colon”, is used in Pascal in several ways:
- in an identifier declaration it separates the type
- most notably in
var
sections - but also in
const
sections (in case of explicitely typed constants) procedure
andfunction
parameters have a type, too- and return values of functions (including operator overloads)
- as well as properties
- in general, everywhere where a new identifier associated with some memory, is introduced (also custom structured type definitions)
- most notably in
- in
case
selectors it closes a match-list - in label definitions the colon seperates the instruction from the label name
- also some routines, especially the
Str
,write
andwriteLn
procedures accept further parameters via colon separated arguments - Offset / segment separation under DOS
Mem[$B800:$0000]
The following example shows the most prevalent usage scenarios:
1program colonDemo(input, output, stderr);
2
3procedure numberReport(const i: int64);
4begin
5 case i of
6 low(i)..-1:
7 begin
8 writeLn('Your number is negative. ☹');
9 end;
10 1..high(i):
11 begin
12 // right aligns to a width of 24 characters
13 writeLn(i:24);
14 end;
15 else
16 begin
17 writeLn('You''ve entered zero.');
18 end;
19 end;
20end;
21
22var
23 i: int64;
24
25begin
26 writeLn('Enter a number:');
27 readLn(i);
28 numberReport(i);
29end.
other remarks
single characters |
|
character pairs |
|