Sono uno psicologo di formazione classica, non un programmatore, quindi a volte mi sfuggono gli aspetti più avanzati della programmazione, in particolare per quanto riguarda l'efficienza del programma e / o determinate migliori pratiche, in questo caso per quanto riguarda l'uso delle variabili.
Ecco alcuni pseudo-codice:
var a;
var b;
var c;
function GetSomeInformation() {
returns "XYZ";
}
a = GetSomeInformation();
b = GetSomeInformation();
c = GetSomeInformation();
Quindi la mia domanda è:
È più o meno efficiente (o la stessa cosa) memorizzare i dati in una variabile una volta e fare riferimento a ciò rispetto alle chiamate ripetute alla stessa funzione?
I.E., questo codice è più efficiente?
var results = GetSomeInformation();
a = results;
b = results;
c = results;
In tal caso, questo guadagno o perdita di efficienza è generalmente la stessa in tutte le lingue o varia in base alla lingua? Ci sono soglie dove diventa preferibile assegnare un nome a una variabile anziché utilizzare una chiamata a funzioni ripetute o viceversa? Quali aspetti potrebbero cambiare la sua efficienza (ad esempio, c'è una differenza se si tratta di una funzione membro di una classe rispetto a una funzione regolare nell'ambito globale)? ecc.
Se possibile, mi piacerebbe sapere in che modo tale nozione si applica alle finestre di dialogo C ++ / MFC, come è emerso quando stavo scrivendo del codice in quel framework.
// define pointers to the items in my form
CListBox *pLISTBOX = (CListBox*) GetDlgItem(LISTBOX);
CStatic *pSTATIC_A = (CStatic*) GetDlgItem(STATIC_A);
CStatic *pSTATIC_B = (CStatic*) GetDlgItem(STATIC_B);
CEdit *pEDIT_BOX_A = (CEdit*) GetDlgItem(EDIT_BOX_A);
CEdit *pEDIT_BOX_B = (CEdit*) GetDlgItem(EDIT_BOX_B);
int SelectedIndex = pLISTBOX->GetCurSel();
pSTATIC_A->SetWindowText(pLISTBOX->GetItemData(SelectedIndex));
pSTATIC_B->SetWindowText(pLISTBOX->GetItemData(SelectedIndex));
pEDIT_BOX_A->SetWindowText(pLISTBOX->GetItemData(SelectedIndex));
pEDIT_BOX_B->SetWindowText(pLISTBOX->GetItemData(SelectedIndex));