Jay*_*ung 4 c function naming-conventions
这可能是一个奇怪的问题,因为约定通常是单独的set和get方法.但在我的情况下,它有点不同:函数的参数决定该函数是getter还是setter,所以我正在寻找一个指示这种函数的函数名.
我发现的一些名字是getset,setget,rw等,但我觉得这些名字很奇怪.什么样的命名约定适合这些功能?
在Java bean出现get/set命名约定之前,人们常常看到函数(特别是C++和其他OO语言中的方法)完全按照你的描述.
它们通常以它们设置或获得的变量命名,例如:
int counter_;
int counter () {
return counter_;
}
int counter (int c) {
counter_ = c;
return counter_;
}
Run Code Online (Sandbox Code Playgroud)
在具有不同变量和函数名称空间的语言中,您甚至可以使变量和get/set函数具有完全相同的名称(不需要像我在此处所示的尾随_).
在具有默认参数的语言中,您可以将getter和setter写为一个函数,例如:
int counter (int c = MAX_INT) {
if (c != MAX_INT) {
counter_ = c;
}
return counter_;
}
Run Code Online (Sandbox Code Playgroud)
...虽然我并不是特别热衷于这种方法,因为如果有人打电话counter (MAX_INT),它会导致细微的错误.
我一直认为这种命名方法有一定意义,我写了一些以这种方式工作的库.
但是,这种命名约定确实会使代码的读者感到困惑,特别是在没有尾随括号的情况下可以调用无参数函数的语言中,因此很难看出函数是否被调用或是否正在访问公共变量直.当然有些人会称后者为功能而非问题......