@@ -13,16 +13,16 @@ provides three kinds of material:
13
13
- Appendix chapters providing rationale and references to languages that
14
14
influenced the design.
15
15
16
- This document does not serve as an introduction to the
16
+ This document does not serve as a tutorial introduction to the
17
17
language. Background familiarity with the language is assumed. A separate
18
- [ guide ] is available to help acquire such background familiarity.
18
+ [ tutorial ] document is available to help acquire such background familiarity.
19
19
20
20
This document also does not serve as a reference to the [ standard]
21
21
library included in the language distribution. Those libraries are
22
22
documented separately by extracting documentation attributes from their
23
23
source code.
24
24
25
- [ guide ] : guide .html
25
+ [ tutorial ] : tutorial .html
26
26
[ standard ] : std/index.html
27
27
28
28
## Disclaimer
@@ -349,7 +349,7 @@ enclosed within two `U+0022` (double-quote) characters,
349
349
with the exception of ` U+0022 ` itself,
350
350
which must be _ escaped_ by a preceding ` U+005C ` character (` \ ` ),
351
351
or a _ raw byte string literal_ .
352
- It is equivalent to a ` &'static [u8] ` borrowed array of unsigned 8-bit integers.
352
+ It is equivalent to a ` &'static [u8] ` borrowed vector of unsigned 8-bit integers.
353
353
354
354
Some additional _ escapes_ are available in either byte or non-raw byte string
355
355
literals. An escape starts with a ` U+005C ` (` \ ` ) and continues with one of
@@ -2811,17 +2811,16 @@ When the type providing the field inherits mutabilty, it can be [assigned](#assi
2811
2811
Also, if the type of the expression to the left of the dot is a pointer,
2812
2812
it is automatically dereferenced to make the field access possible.
2813
2813
2814
- ### Array expressions
2814
+ ### Vector expressions
2815
2815
2816
2816
~~~~ {.ebnf .gram}
2817
- array_expr : '[' "mut" ? vec_elems? ']' ;
2817
+ vec_expr : '[' "mut" ? vec_elems? ']' ;
2818
2818
2819
- array_elems : [expr [',' expr]*] | [expr ',' ".." expr] ;
2819
+ vec_elems : [expr [',' expr]*] | [expr ',' ".." expr] ;
2820
2820
~~~~
2821
2821
2822
- An [ array] ( #vector,-array,-and-slice-types ) _ expression_ is written by
2823
- enclosing zero or more comma-separated expressions of uniform type in square
2824
- brackets.
2822
+ A [ _ vector_ ] ( #vector-types ) _ expression_ is written by enclosing zero or
2823
+ more comma-separated expressions of uniform type in square brackets.
2825
2824
2826
2825
In the ` [expr ',' ".." expr] ` form, the expression after the ` ".." `
2827
2826
must be a constant expression that can be evaluated at compile time, such
@@ -2830,7 +2829,7 @@ as a [literal](#literals) or a [static item](#static-items).
2830
2829
~~~~
2831
2830
[1i, 2, 3, 4];
2832
2831
["a", "b", "c", "d"];
2833
- [0i, ..128]; // array with 128 zeros
2832
+ [0i, ..128]; // vector with 128 zeros
2834
2833
[0u8, 0u8, 0u8, 0u8];
2835
2834
~~~~
2836
2835
@@ -2840,9 +2839,9 @@ as a [literal](#literals) or a [static item](#static-items).
2840
2839
idx_expr : expr '[' expr ']' ;
2841
2840
~~~~
2842
2841
2843
- [ Array ] ( #vector,-array,-and-slice -types ) -typed expressions can be indexed by writing a
2842
+ [ Vector ] ( #vector-types ) -typed expressions can be indexed by writing a
2844
2843
square-bracket-enclosed expression (the index) after them. When the
2845
- array is mutable, the resulting [ lvalue] ( #lvalues,-rvalues-and-temporaries ) can be assigned to.
2844
+ vector is mutable, the resulting [ lvalue] ( #lvalues,-rvalues-and-temporaries ) can be assigned to.
2846
2845
2847
2846
Indices are zero-based, and may be of any integral type. Vector access
2848
2847
is bounds-checked at run-time. When the check fails, it will put the
@@ -2903,7 +2902,7 @@ This means that arithmetic operators can be overridden for user-defined types.
2903
2902
The default meaning of the operators on standard types is given here.
2904
2903
2905
2904
* ` + `
2906
- : Addition and array /string concatenation.
2905
+ : Addition and vector /string concatenation.
2907
2906
Calls the ` add ` method on the ` std::ops::Add ` trait.
2908
2907
* ` - `
2909
2908
: Subtraction.
@@ -3206,7 +3205,7 @@ for_expr : "for" pat "in" no_struct_literal_expr '{' block '}' ;
3206
3205
A ` for ` expression is a syntactic construct for looping over elements
3207
3206
provided by an implementation of ` std::iter::Iterator ` .
3208
3207
3209
- An example of a for loop over the contents of an array :
3208
+ An example of a for loop over the contents of a vector :
3210
3209
3211
3210
~~~~
3212
3211
# type Foo = int;
@@ -3264,7 +3263,7 @@ match_pat : pat [ '|' pat ] * [ "if" expr ] ? ;
3264
3263
3265
3264
A ` match ` expression branches on a * pattern* . The exact form of matching that
3266
3265
occurs depends on the pattern. Patterns consist of some combination of
3267
- literals, destructured arrays or enum constructors, structures and
3266
+ literals, destructured vectors or enum constructors, structures and
3268
3267
tuples, variable binding specifications, wildcards (` .. ` ), and placeholders
3269
3268
(` _ ` ). A ` match ` expression has a * head expression* , which is the value to
3270
3269
compare to the patterns. The type of the patterns must equal the type of the
@@ -3293,11 +3292,11 @@ between `_` and `..` is that the pattern `C(_)` is only type-correct if `C` has
3293
3292
exactly one argument, while the pattern ` C(..) ` is type-correct for any enum
3294
3293
variant ` C ` , regardless of how many arguments ` C ` has.
3295
3294
3296
- Used inside a array pattern, ` .. ` stands for any number of elements, when the
3295
+ Used inside a vector pattern, ` .. ` stands for any number of elements, when the
3297
3296
` advanced_slice_patterns ` feature gate is turned on. This wildcard can be used
3298
- at most once for a given array , which implies that it cannot be used to
3297
+ at most once for a given vector , which implies that it cannot be used to
3299
3298
specifically match elements that are at an unknown distance from both ends of a
3300
- array , like ` [.., 42, ..] ` . If followed by a variable name, it will bind the
3299
+ vector , like ` [.., 42, ..] ` . If followed by a variable name, it will bind the
3301
3300
corresponding slice to the variable. Example:
3302
3301
3303
3302
~~~~
@@ -3430,7 +3429,7 @@ let message = match x {
3430
3429
~~~~
3431
3430
3432
3431
Range patterns only work on scalar types
3433
- (like integers and characters; not like arrays and structs, which have sub-components).
3432
+ (like integers and characters; not like vectors and structs, which have sub-components).
3434
3433
A range pattern may not be a sub-range of another range pattern inside the same ` match ` .
3435
3434
3436
3435
Finally, match patterns can accept * pattern guards* to further refine the
@@ -3538,10 +3537,10 @@ http://www.unicode.org/glossary/#unicode_scalar_value)
3538
3537
(ie. a code point that is not a surrogate),
3539
3538
represented as a 32-bit unsigned word in the 0x0000 to 0xD7FF
3540
3539
or 0xE000 to 0x10FFFF range.
3541
- A ` [char] ` array is effectively an UCS-4 / UTF-32 string.
3540
+ A ` [char] ` vector is effectively an UCS-4 / UTF-32 string.
3542
3541
3543
3542
A value of type ` str ` is a Unicode string,
3544
- represented as a array of 8-bit unsigned bytes holding a sequence of UTF-8 codepoints.
3543
+ represented as a vector of 8-bit unsigned bytes holding a sequence of UTF-8 codepoints.
3545
3544
Since ` str ` is of unknown size, it is not a _ first class_ type,
3546
3545
but can only be instantiated through a pointer type,
3547
3546
such as ` &str ` or ` String ` .
@@ -3652,7 +3651,7 @@ Such recursion has restrictions:
3652
3651
3653
3652
* Recursive types must include a nominal type in the recursion
3654
3653
(not mere [ type definitions] ( #type-definitions ) ,
3655
- or other structural types such as [ arrays ] ( #vector,-array,-and-slice -types ) or [ tuples] ( #tuple-types ) ).
3654
+ or other structural types such as [ vectors ] ( #vector-types ) or [ tuples] ( #tuple-types ) ).
3656
3655
* A recursive ` enum ` item must have at least one non-recursive constructor
3657
3656
(in order to give the recursion a basis case).
3658
3657
* The size of a recursive type must be finite;
@@ -4156,7 +4155,7 @@ heap data.
4156
4155
### Built in types
4157
4156
4158
4157
The runtime provides C and Rust code to assist with various built-in types,
4159
- such as arrays , strings, and the low level communication system (ports,
4158
+ such as vectors , strings, and the low level communication system (ports,
4160
4159
channels, tasks).
4161
4160
4162
4161
Support for other built-in types such as simple types, tuples and
@@ -4175,7 +4174,7 @@ communication facilities.
4175
4174
The Rust compiler supports various methods to link crates together both
4176
4175
statically and dynamically. This section will explore the various methods to
4177
4176
link Rust crates together, and more information about native libraries can be
4178
- found in the [ ffi guide ] [ ffi ] .
4177
+ found in the [ ffi tutorial ] [ ffi ] .
4179
4178
4180
4179
In one session of compilation, the compiler can generate multiple artifacts
4181
4180
through the usage of either command line flags or the ` crate_type ` attribute.
0 commit comments