Tôi là nhà tâm lý học được đào tạo bài bản, không phải là lập trình viên, vì vậy đôi khi các khía cạnh nâng cao hơn của lập trình thoát khỏi tôi, đặc biệt là về hiệu quả của chương trình và / hoặc một số thực tiễn tốt nhất, trong trường hợp này liên quan đến việc sử dụng các biến.
Đây là một số mã giả:
var a;
var b;
var c;
function GetSomeInformation() {
returns "XYZ";
}
a = GetSomeInformation();
b = GetSomeInformation();
c = GetSomeInformation();
Vì vậy, câu hỏi của tôi là: Việc
lưu trữ dữ liệu vào một biến một lần và ít tham khảo trái ngược với các cuộc gọi lặp lại cho cùng một chức năng?
IE, mã này có hiệu quả hơn không?
var results = GetSomeInformation();
a = results;
b = results;
c = results;
Nếu vậy, mức tăng hay giảm về hiệu quả nói chung là giống nhau giữa các ngôn ngữ, hay nó có thay đổi theo ngôn ngữ không? Có ngưỡng nào để đặt tên biến trở nên tốt hơn so với sử dụng lệnh gọi hàm lặp lại hoặc ngược lại không? Những khía cạnh nào có thể thay đổi hiệu quả của nó (ví dụ, có sự khác biệt nào cho dù đó là chức năng thành viên của một lớp so với chức năng thông thường trong phạm vi toàn cầu)? Vân vân.
Nếu có thể, tôi muốn biết cụ thể cách áp dụng một khái niệm như vậy đối với các hộp thoại C ++ / MFC, khi nó xuất hiện khi tôi đang viết một số mã trong khung đó.
// 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));
GetSomeInformation
) là thuần túy và trình biên dịch nhận thức được thực tế này. Mặt khác, trình biên dịch phải gọi nó ba lần để đảm bảo các tác dụng phụ xảy ra như mong đợi.