例如,我有一个类 Employee
,它有函数 getName()
和 pay()
。第一个函数只返回人名(一个不可变属性),但第二个函数显着改变了对象(例如,从不同线程调用第二个函数是不好的)。
是否有一个术语表示不改变对象状态的函数,例如 getName()
?不可变类中的所有函数都将具有此属性。
最佳答案
我认为这种功能没有全局公认的术语。
也许“无副作用”和“纯”接近您想要的,但它们意味着该函数不会改变任何状态(无论是您调用它的对象,还是任何其他对象)。
“纯”一词来自函数式编程世界,意思是函数的返回值仅取决于其参数的值。在面向对象的编程中,通常也将调用它的对象视为输入参数之一,因此属性 getter 可以被视为“纯”函数。
关于java - 术语 : What do you call a function that does not change object state?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39589177/