mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-23 23:34:48 +00:00
Improve E0730 explanation
This commit is contained in:
parent
1d2e3fff69
commit
89e4fe3313
@ -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
|
||||
}
|
||||
}
|
||||
```
|
||||
|
Loading…
Reference in New Issue
Block a user