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