设置和获取值的方法/函数的命名约定是什么?

时间:2013-04-01 04:38:07

标签: c function naming-conventions

这可能是一个奇怪的问题,因为约定通常是单独的set和get方法。但在我的情况下,它有点不同:函数的参数决定该函数是getter还是setter,所以我正在寻找一个函数名来指示这样的函数。

我发现的一些名字是getset,setget,rw等,但我觉得这些名字很奇怪。什么样的命名约定适合这些函数?

2 个答案:

答案 0 :(得分:5)

在Java bean出现get / set命名约定之前,人们常常看到函数(特别是C ++和其他OO语言中的方法)完全按照你的描述。

它们通常以它们设定或获得的变量命名,例如:

int counter_;

int counter () {
    return counter_;
}

int counter (int c) {
    counter_ = c;
    return counter_;
}

在具有不同变量和函数名称空间的语言中,您甚至可以使变量和get / set函数具有完全相同的名称(不需要像我在此处所示的尾随_)。

在具有默认参数的语言中,您可以将getter和setter写为一个函数,例如像这样的东西:

int counter (int c = MAX_INT) {
    if (c != MAX_INT) {
        counter_ = c;
    }
    return counter_;
}

...虽然我并不是特别热衷于这种方法,因为如果有人打电话给counter (MAX_INT)会导致细微的错误。

我一直认为这种命名方法有一定意义,我写了一些以这种方式工作的库。

然而,这个命名约定确实会使代码的读者感到困惑,特别是在没有尾随括号的情况下可以调用无参数函数的语言中,因此很难看出函数是否被调用或是否是公共变量正在被直接访问。当然有些人会把后者称为功能而不是问题......

答案 1 :(得分:1)

如何在填充变量名称后命名函数?像属性一样,当传递的参数为null或其他特殊值时,则为get,否则为set。