我见过像_ image这样的变量,想知道_是什么意思?
答案 0 :(得分:55)
它不是意味着任何东西。私有成员变量的常见命名约定是将它们与方法和公共属性分开。例如:
class Foo
{
private int _counter;
public int GetCounter()
{
return _counter;
}
public int SetCounter(int counter)
{
_counter = counter;
}
}
答案 1 :(得分:17)
在大多数语言中,除了字母和数字之外,_
是变量名中唯一允许的字符。以下是一些常见用例:
some_variable
_private
filter_
(因为filter
是内置函数)[0 for _ in range(n)]
请注意,有些人真的不喜欢最后一个用例。
答案 2 :(得分:10)
有些人用它来表示他们是变量而不是(比方说)方法名称。或者明确表示它们是实例变量而不是局部变量。有时您会看到额外的前缀,例如
private int m_age; // Member (instance) variable
private static int g_maxAge; // Global (static) variable
这只是一个惯例。我去说“没有任何关于_的魔力”,但这并不完全正确 - 在某些语言中, double 下划线保留用于“特殊”用途。 (具体用法取决于当然的语言。)
编辑:双下划线规则的示例,因为它适用于C#。从C#4规范,第2.4.2节:
包含两个连续下划线字符(U + 005F)的标识符保留供实现使用。例如,实现可能会提供以两个下划线开头的扩展关键字。
答案 3 :(得分:1)
变量名中的下划线完全是可选的。许多程序员使用它来区分私有变量 - 因此实例变量通常会在名称前加上下划线。这可以防止与局部变量混淆。
答案 4 :(得分:1)
通常它将类字段与变量分开。避免在代码构造中使用this
。
class MyClass {
private int _myIntField;
private void setMyIntField(int value2Set) {
_myIntField = value2Set;
}
}
答案 5 :(得分:1)
答案 6 :(得分:1)
_
通常意味着私人或内部。在C ++标准库中,所有特定于实现的变量必须以_
开头。
答案 7 :(得分:0)
在大多数语言中,它实际上并不影响代码的功能,但通常用于表示保留名称或内部名称。
在某些语言中,通常命名实例变量_image
或image_
,然后使用公共方法来访问它image()
。
类似地,在某些语言中使用某些名称如__FILE__
来表示由解释器或编译器创建的特殊变量或常量;这些名称通常是保留,以鼓励程序员避免在自己的程序中使用这些名称,以防在将来的语言版本中使用这些名称。
答案 8 :(得分:0)
另一个用例(主要是在javascript中)是当你需要将当前实例分配给我们编写的局部变量时,如下所示
var _this = this;
如果您需要创建本地临时对象引用,以区分实际需要的引用,我们创建如下
List<Employee> employeeList = new ArrayList<>();
for (Employee _employee : employeeList) {}
因此,如果我们遵循这个最佳实践,那么每当您看到带有_的变量时,我们就得出结论,它被用于解决该特定方法的某些业务需求。
答案 9 :(得分:0)
要避免使用保留关键字或保留关键字,请更容易避免使用它们。 在JavaSE9中不鼓励使用单个下划线。
答案 10 :(得分:0)
基本上,它告诉开发人员应提供定义。简而言之,它的定义没有任何定义。
答案 11 :(得分:0)
根据 ANSI-C 标准,标识符中使用两个下划线 (`__') 保留供编译器内部使用。
下划线 (`_') 常用于库函数的名称中(例如“_main”和“_exit”)。为避免冲突,标识符不要以下划线开头。