Improve E0730 explanation

This commit is contained in:
Guillaume Gomez 2020-07-30 13:51:22 +02:00
parent 1d2e3fff69
commit 89e4fe3313

View File

@ -14,14 +14,28 @@ fn is_123<const N: usize>(x: [u32; N]) -> bool {
}
```
Ensure that the pattern is consistent with the size of the matched array.
Additional elements can be matched with `..`:
To fix this error, you have two solutions:
1. Use an array with a fixed length.
2. Use a slice.
Example with an array with a fixed length:
```
let r = &[1, 2, 3, 4];
match r {
&[a, b, ..] => { // ok!
println!("a={}, b={}", a, b);
fn is_123(x: [u32; 3]) -> bool { // We use an array with a fixed size
match x {
[1, 2, ..] => true, // ok!
_ => false
}
}
```
Example with a slice:
```
fn is_123(x: &[u32]) -> bool { // We use a slice
match x {
[1, 2, ..] => true, // ok!
_ => false
}
}
```