Jestem ciekawa historii tego. Zakładam, że switch
spodoba się programistom C/C++/Java/etc i tym samym będzie naturalnym wyborem. Jeśli ktoś chciał uniknąć pomyłki w semantykach (ponieważ match
jest silniejszy niż switch
), zakładam, że pożyczyłbym case
od Haskella.Dlaczego Rust użył "dopasowania" zamiast "przełącznika" lub "przypadku"?
6
A
Odpowiedz
10
The Rust Reference cites Standardowe ML (SML) i OCAM1 jako wpływ na dopasowywanie wzorców. W OCaml, pattern matching uses the match
keyword.
The original Rust compiler was written in OCaml, więc ma sens, że OCaml miałoby większy wpływ na Rust niż na przykład Haskell.
Powiązane problemy
- 1. Dlaczego Scala nie może zoptymalizować tego dopasowania do przełącznika?
- 2. wyliczanie enum w przypadku przełącznika
- 3. switch/case w przypadku przełącznika/
- 4. golang stwardnienie przypadku przełącznika typu
- 5. Swift: testowanie wartości opcjonalnej w przypadku przełącznika
- 6. Dlaczego autor użył EntityUtils.consume (httpEntity) ;?
- 7. Powracają style kodowania PHP; w przypadku przełącznika/
- 8. Styl Erlanga - dopasowanie przypadku do dopasowania funkcji
- 9. Wydajność tylko w przypadku dopasowania wzorca
- 10. w przypadku przełącznika, jeśli napiszemy "domyślnie" jako słowo lub pojedynczą literę, nie powoduje to błędu.
- 11. Dlaczego Python nie ma przełącznika?
- 12. Zwróć typ pożyczony lub posiadany w Rust
- 13. Dlaczego Rust potrzebuje składni `if let`?
- 14. Przerwa na pętli od wewnątrz przypadku przełącznika w JavaScript
- 15. Dlaczego ten wzór dopasowania jest niedostępny w przypadku używania niedosłownych wzorców?
- 16. Jak używać przełącznika "lub" w PHP?
- 17. Dlaczego ten program Rust ignoruje niezmienność
- 18. Dlaczego ten program programu Rust nie działa?
- 19. UDP API w Rust
- 20. dlaczego vba chce, bym użył przydziału dla funkcji/poddzierżawienia?
- 21. Dlaczego Objectify zamiast JDO?
- 22. Dlaczego warto użyć char [] zamiast ciągu?
- 23. Dlaczego firma Rust promuje instrukcje użycia z wyraźnym importem?
- 24. Dlaczego darcs zamiast git?
- 25. Wymuszenie wyczerpującego przełącznika
- 26. Zakres zmiennej w obudowie przełącznika
- 27. Dlaczego niewyczerpujące osłony powodują niepowodzenie dopasowania wzorca?
- 28. Dlaczego w takim przypadku otrzymuję wydruk System.char []?
- 29. Dlaczego SELECT 0, ... zamiast SELECT
- 30. Dlaczego warto używać TimeSpan.CompareTo() zamiast < > lub =