Contents Index Previous Next
3.6.3 String Types
Static Semantics
1
{string type} A
one-dimensional array type whose component type is a character type is
called a
string type.
2
[There are two predefined
string types, String and Wide_String, each indexed by values of the predefined
subtype Positive; these are declared in the visible part of package Standard:]
3
[subtype Positive is Integer range 1 .. Integer'Last;
4
type String is array(Positive range <>) of Character;
type Wide_String is array(Positive range <>) of Wide_Character;
]
5
49 String literals (see 2.6
and 4.2) are defined for all string types. The concatenation
operator & is predefined for string types, as for all nonlimited one-dimensional
array types. The ordering operators <, <=, >, and >= are predefined
for string types, as for all one-dimensional discrete array types; these ordering
operators correspond to lexicographic order (see 4.5.2).
Examples
6
Examples of string
objects:
7
Stars : String(1 .. 120) := (1 .. 120 => '*' );
Question : constant String := "How many characters?";
-- Question'First = 1, Question'Last = 20
-- Question'Length = 20 (the number of characters)
8
Ask_Twice : String := Question & Question; -- constrained to (1..40)
Ninety_Six : constant Roman := "XCVI"; -- see 3.5.2 and 3.6
Inconsistencies With Ada 83
8.a
{inconsistencies with Ada 83}
The declaration of Wide_String in Standard hides
a use-visible declaration with the same defining_identifier.
In rare cases, this might result in an inconsistency between Ada 83 and
Ada 95.
Incompatibilities With Ada 83
8.b
{incompatibilities with Ada
83} Because both String and Wide_String are always
directly visible, an expression like
8.c
"a" < "bc"
8.d
is now ambiguous, whereas in Ada
83 both string literals could be resolved to type String.
Extensions to Ada 83
8.e
{extensions to Ada 83}
The type Wide_String is new (though it was approved
by ARG for Ada 83 compilers as well).
Wording Changes from Ada 83
8.f
We define the term string type
as a natural analogy to the term character type.
Contents Index Previous Next Legal