Я пишу пояснення щодо коду для курсу і випадково використовую слова method
та function
взаємозамінно. Я вирішив повернутися назад і виправити формулювання, але наткнувся на дірку в своєму розумінні.
З того, що я розумію, підпрограма - це, function
якщо вона не діє на екземпляр класу (її ефект обмежується явним входом / виходом), і є, method
якщо вона працює над екземпляром класу (може мати виключати побічні ефекти для екземпляра, які роблять його нечистим)
Тут добре обговорюється тема. Зауважте, що за визначеннями прийнятої відповіді статика method
насправді повинна бути функцією, оскільки екземпляр ніколи не передається неявно, і він не має доступу до членів будь-якого інстанції.
Однак, маючи це на увазі, чи не повинні статичні methods
фактично бути функціями?
За їх визначенням вони не діють на конкретні екземпляри класу; вони лише "прив'язані" до класу через відношення. Я бачив декілька гарних веб-сайтів, які посилаються на статичні підпрограми як "методи" ( Oracle , Fredosaurus , ProgrammingSimplified ), тому або всі вони оглядають термінологію, або мені щось не вистачає (я здогадуюсь останнього) .
Я хотів би переконатися, що я використовую правильне формулювання.
Хтось може це очистити?