我正在为某门课程的一些代码编写解释,并且偶然使用了这些单词method
并且function
可以互换使用。我决定回过头来修正措辞,但在我的理解上遇到了一个漏洞。
据我了解,子例程是一个function
如果它不作用于一个类的实例(其作用仅限于其显式输入/输出),并且是一个method
如果它作用于一个类的实例(它可能带有消除导致实例不纯的副作用)。
关于这个话题,这里有很好的讨论。请注意,根据接受的答案的定义,静态method
实际上应该是一个函数,因为永远不会隐式传递实例,并且它无法访问任何实例的成员。
有了这个主意,静态不应该methods
是函数吗?
根据它们的定义,它们不作用于类的特定实例;他们只是因为关系而“束缚”在班上。我见过一些外观不错的站点,尽管它们将静态子例程称为“方法”(Oracle,Fredosaurus,ProgrammingSimplified),所以它们要么都忽略了术语,要么我就漏掉了一些东西(我猜是后者) 。
我想确保我使用的措词正确。
有人可以清除吗?