Sono curioso di sapere quando dovrei usare le clausole di corrispondenza di pattern vs guard durante la definizione delle funzioni.Elixir: Pattern Match o Guard
Ad esempio con pattern matching:
defmodule Exponent do
def power(value, 0), do: 1
def power(value, n), do: value*power(value, n-1)
end
vs clausola guardia:
defmodule Exponent do
def power(value, n) when n==0, do: 1
def power(value, n), do: value*power(value, n-1)
end
intendo entrambe producono lo stesso risultato, ma è una soluzione preferita all'altra? E se sì perché?
Sono nuovo per Elixir, quindi la risposta a questa domanda non mi è prontamente apparente (ancora). Grazie in anticipo.
Osservi qualche differenza di prestazioni in un costrutto rispetto all'altro? Chiedere se uno è preferito rispetto all'altro mi colpisce come un grande esempio di una domanda che vuole un'opinione se non c'è differenza di prestazioni. Vota per chiudere. –
Sono onestamente così nuovo che non ho ancora scoperto come persino valutare questo tipo di cose ... Non ho visto domande simili, quindi ho deciso di chiedere esplicitamente. – aren55555
Potrebbe esserci una differenza tra un'implementazione e l'altra, ma senza alcun contesto è difficile dirlo. In questo momento stai facendo una domanda analoga a "quale è meglio, banane o fragole?" –