Esiste una pratica preferita sull'inizializzazione di variabili che vengono prima definite all'interno di un ramo di codice, o è questa preferenza puramente soggettiva / personale?
vale a dire. ci sono molti modi in cui questo può essere fatto; il più ovvio dei quali sono i seguenti:
#option 1
[string]$path = ''
if ($ENV:PROCESSOR_ARCHITECTURE -like '*64') {
$path = ${env:ProgramFiles(x86)}
} else {
$path = $env:ProgramFiles
}
Get-ChildItem $path
#option 2
[string]$path = $env:ProgramFiles
if ($ENV:PROCESSOR_ARCHITECTURE -like '*64') {
$path = ${env:ProgramFiles(x86)}
}
Get-ChildItem $path
#option 3
if ($ENV:PROCESSOR_ARCHITECTURE -like '*64') {
[string]$path = ${env:ProgramFiles(x86)}
} else {
[string]$path = $env:ProgramFiles
}
Get-ChildItem $path
Nella maggior parte dei linguaggi di programmazione andresti con option 1
; cioè avere la variabile dichiarata e predefinita in alto, quindi assegnarla in un ramo successivo. Puoi selezionare option 2
invece se il costo del recupero del valore è insignificante (ad esempio in quanto sopra riportiamo semplicemente una variabile di ambiente, quindi è un'operazione a basso costo, ma se stessimo recuperando un valore da una risorsa esterna / utilizzando una query o un'operazione costosa potremmo preferire option 1
a option 2
). Allo stesso modo, alcune persone potrebbero preferire l'opzione 1 all'opzione 2 perché illustra meglio le condizioni in base alle quali ogni valore deve essere utilizzato.
Option 3
è consentito solo in lingue che non richiedono la dichiarazione di variabili; così è permesso in PowerShell / è la soluzione più economica (cioè il numero minimo di incarichi).
NB: mi rendo conto che il qualificatore [string]
è superfluo / che PowerShell lo determinerà automaticamente; questo è solo qualcosa che includo per aiutare a illustrare l'idea della dichiarazione delle variabili (cioè il primo incarico).
Sento un'avversione verso l'opzione 3, probabilmente a causa del mio background in altre lingue; quindi non so se gli altri avrebbero la stessa avversione, o se la maggior parte delle persone pensa solo "questa è la cosa giusta da fare in questa lingua".
Ci sono delle linee guida su questo genere di cose (cioè quando non ci sono considerazioni di rendimento o fattori aggiuntivi per informare meglio la decisione)?