【问题标题】:What do you call functions which get and set?您将获取和设置的函数称为什么?
【发布时间】:2026-01-17 17:40:01
【问题描述】:

jQuery 框架有很多函数可以根据传递的参数检索或改变值:

$(this).html();       // get the html
$(this).html('blah'); // set the html

有这样行为的函数的标准名称吗?

【问题讨论】:

    标签: oop accessor nomenclature mutators


    【解决方案1】:

    AFAIK,对于既作为 getter 又作为 setter 的单个函数没有“标准”名称。这是一个不太常用的习语,但在某些语言中是可能的,只要有据可查,使用它就没有坏处。

    【讨论】:

    • 在任何允许可选参数(php、javascript、python、ruby ...)或函数重载(java...)的语言中都不可能吗?
    • 可以,只要这些语言有办法区分“根本不传参数”和“传参数,但给定了默认值”
    【解决方案2】:

    有人称它为属性

    【讨论】:

    • 不,它是对象上的函数,而不是对象的属性。
    【解决方案3】:

    有这样行为的函数的标准名称吗?

    Getter 和 Setter。

    编辑

    我刚刚意识到您需要一个函数来执行此操作。对此的技术术语是一个坏主意。除非您的语言提供属性,否则尝试装配单个函数来执行此操作是非常不可读的。

    【讨论】:

    • 我的意思是,有没有一个单一功能的名字可以同时做这两个?