Undocumented if-let behavior with or-patterns
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 70/100
- Tipo di issue
- Documentazione
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- rust
- Ambito
- documentation
Direzione di ricerca
La issue contiene un esempio Rust in due parti: un if let con un pattern or e una guardia &&, e un match con lo stesso pattern or e la stessa guardia. Esegui entrambi per confermare la differenza, poi trova nella Reference i capitoli su pattern or, guardie di match, if let e catene di let. È completato quando la Reference afferma che una catena di let non riprova le alternative del pattern or quando la condizione successiva fallisce, mentre una guardia di match lo fa.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Or-patterns in a match can cause a match guard to run multiple times, as each of the or'ed patterns gets tried after the previous one fails in the guard. However, with let-chains, there is no such "backtracking" behavior. This is not documented in the reference.
fn main() {
if let (x, _) | (_, x) = (1, 2)
&& x == 2
{
println!("This is NOT printed.");
}
match (1, 2) {
(x, _) | (_, x) if x == 2 => {
println!("This is printed.");
}
_ => {}
}
}
Relevant discussion: https://rust-lang.zulipchat.com/#narrow/channel/213817-t-lang/topic/Merging.20destructuring.20assignment.20and.20patterns/near/576565919
- Lingua principale
- Rust
- Stelle
- 1.6k
- Fork
- 618
- Merge medio
- 5h 48m
- PR unite (30g)
- 3
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di rust-lang/reference
-
A-const-eval A-undefined-behavior
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
rust-lang/reference#2266 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
A-resolve
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
I maintainer di solito rispondono entro 1 giorno
-
A-coercions
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
rust-lang/reference#2094 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di rust-lang/reference
Issue simili
-
good first issue help wanted program
Difficoltà 2/5 1-3 ore Idoneità per principianti 83/100
hffgzktbcc-blip/ounce-core#297 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
nautechsystems/nautilus_trader#5631 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 69/100
bytecodealliance/rustix#1736 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
longbridge/gpui-kit#3871 ·
I maintainer di solito rispondono entro 1 giorno
-
area:models enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
I maintainer di solito rispondono entro 1 giorno