Quando sto programmando in Erlang, devo convalidare tutti i valori di ritorno dalle chiamate di funzione per il successo tramite la corrispondenza del modello anche se non intendo utilizzare il valore restituito? La maggior parte delle API di Erlang che ho visto finora non generano eccezioni per errore (ma restituiscono qualcosa come {errore, errore}), quindi devo necessariamente convalidare il valore restituito sì? Qualche eccezione a questo, in cui non ho davvero bisogno di preoccuparmene?Devo essere pattern matching ogni valore restituito?
5
A
risposta
11
È buono lo stile di programmazione per arrestarsi il prima possibile quando qualcosa non funziona. Tutto ciò che viene eseguito dopo verrà eseguito con il sistema in uno stato sconosciuto.
A meno che non si intenda gestire il valore dell'errore e fare qualcosa su di esso, si scrive il codice per il caso riuscito. Come nel seguente piccolo ciclo triste:
life() ->
ok = work(),
ok = rest(),
life().
Problemi correlati
- 1. Algoritmo itemSet pattern matching
- 2. F # pattern matching stranezza
- 3. Pattern matching Inequality
- 4. pattern matching Argomenti funzione
- 5. Pattern Matching in CoffeeScript
- 6. SPARQL pattern matching
- 7. pattern matching in GHCi
- 8. Scala, pattern matching, stringhe
- 9. pattern matching su un'unione discriminata
- 10. F # pattern matching with DataGridColumn.Visibility
- 11. Pattern Matching sui Tipi Promosso
- 12. Scala duck typing pattern matching
- 13. Haskell - Pattern Matching and Recursion
- 14. condizionale pattern matching in Racket
- 15. macros, splice e pattern matching
- 16. errore "tipo di questo valore deve essere noto in questo contesto" nel pattern matching
- 17. intesa pattern matching con operatore cons
- 18. Valore restituito all'intestazione in ogni pagina Laravel
- 19. OCaml: Pattern matching vs If/else statements
- 20. I sinonimi di pattern portano a pattern matching non esaustivo
- 21. Haskell - pattern matching non esaustivo in Haskell
- 22. F # String Pattern-Matching con caratteri jolly
- 23. parole incrociate in Mathematica utilizzando Pattern Matching
- 24. Elixir ed Erlang Records Pattern Matching
- 25. Corrispondenza/i pattern sovrapposti - Pattern matching sugli operatori
- 26. pattern-matching restituendo una stringa che rappresenta un'espressione matematica
- 27. Haskell Pattern Matching su stringhe - Perché non funziona?
- 28. pattern matching su tuple in Kotlin
- 29. pattern matching più righe tramite PHP preg_match
- 30. Swift 2 - Pattern matching in "if"
Christian ha detto tutto ... + 1. – jldupont
Sì, questo è quello che ho pensato. Il problema è che una delle API di terze parti che sto utilizzando non restituisce bene il successo. Dopo aver salvato un documento, restituisce il documento salvato stesso. Torno SomeComplexDoc piuttosto che {ok, SomeComplexDoc}. –
@Jeremy, puoi semplicemente salvare il documento e quindi abbinare su di esso nella riga successiva. 'Doc = my_api_call()', 'ok = is_valid_doc (Doc)'. – Zed