|
10 | 10 |
|
11 | 11 | //! Operations on tuples
|
12 | 12 | //!
|
13 |
| -//! To access a single element of a tuple one can use the following |
14 |
| -//! methods: |
| 13 | +//! To access the _N_-th element of a tuple one can use `N` itself |
| 14 | +//! as a field of the tuple. |
15 | 15 | //!
|
16 |
| -//! * `valN` - returns a value of _N_-th element |
17 |
| -//! * `refN` - returns a reference to _N_-th element |
18 |
| -//! * `mutN` - returns a mutable reference to _N_-th element |
19 |
| -//! |
20 |
| -//! Indexing starts from zero, so `val0` returns first value, `val1` |
| 16 | +//! Indexing starts from zero, so `0` returns first value, `1` |
21 | 17 | //! returns second value, and so on. In general, a tuple with _S_
|
22 |
| -//! elements provides aforementioned methods suffixed with numbers |
23 |
| -//! from `0` to `S-1`. Traits which contain these methods are |
24 |
| -//! implemented for tuples with up to 12 elements. |
| 18 | +//! elements provides aforementioned fields from `0` to `S-1`. |
25 | 19 | //!
|
26 | 20 | //! If every type inside a tuple implements one of the following
|
27 | 21 | //! traits, then a tuple itself also implements it.
|
|
35 | 29 | //!
|
36 | 30 | //! # Examples
|
37 | 31 | //!
|
| 32 | +//! Accessing elements of a tuple at specified indices: |
| 33 | +//! |
| 34 | +//! ``` |
| 35 | +//! let x = ("colorless", "green", "ideas", "sleep", "furiously"); |
| 36 | +//! assert_eq!(x.3, "sleep"); |
| 37 | +//! |
| 38 | +//! let v = (3i, 3i); |
| 39 | +//! let u = (1i, -5i); |
| 40 | +//! assert_eq!(v.0 * u.0 + v.1 * u.1, -12i); |
| 41 | +//! ``` |
| 42 | +//! |
38 | 43 | //! Using traits implemented for tuples:
|
39 | 44 | //!
|
40 | 45 | //! ```
|
|
0 commit comments