Подтвердить что ты не робот

Почему мы используем _ в именах переменных?

Я видел переменные типа _ image и задавался вопросом, что означал?

4b9b3361

Ответ 1

Это ничего не значит. Это скорее обычное соглашение об именах для частных переменных-членов, которое позволяет им отделить их от методов и общедоступных свойств. Например:

class Foo
{
   private int _counter;

   public int GetCounter()
   {
      return _counter;
   }

   public int SetCounter(int counter)
   {
      _counter = counter;
   }
}

Ответ 2

В большинстве языков _ - единственный символ, разрешенный в именах переменных, кроме букв и цифр. Вот несколько распространенных случаев:

  • Разделительные слова: some_variable
  • Частные переменные начинаются с символа подчеркивания: _private
  • Добавление в конец, чтобы отличить от встроенного имени: filter_ (так как filter является встроенной функцией)
  • Само по себе как неиспользуемая переменная во время цикла: [0 for _ in range(n)]

Обратите внимание, что некоторым людям действительно не нравится этот последний случай использования.

Ответ 3

Некоторые используют его, чтобы указать, что они являются переменными, а не (скажем) именами методов. Или сделать очевидным, что это переменные экземпляра, а не локальные переменные. Иногда вы видите дополнительные префиксы, например

private int m_age; // Member (instance) variable
private static int g_maxAge; // Global (static) variable

Это просто конвенция. Я собирался сказать "нет ничего волшебного", но это не совсем так - на некоторых языках двойное подчеркивание зарезервировано для "специальных" целей. (Точное использование зависит от языка, конечно.)

EDIT: пример правила двойного подчеркивания, применимого к С#. Из спецификации С# 4, раздел 2.4.2:

Идентификаторы, содержащие два последовательных символа подчеркивания (U + 005F), зарезервированы для использования реализацией. Например, реализация может предоставлять расширенные ключевые слова, начинающиеся с двух символов подчеркивания.

Ответ 4

Подчеркивание имен переменных полностью необязательно. Многие программисты используют его для дифференциации частных переменных - поэтому переменные экземпляра обычно имеют знак подчеркивания, добавленный к имени. Это предотвращает путаницу с локальными переменными.

Ответ 5

Обычно он отделяет поля классов от переменных. Чтобы избежать использования this в конструкциях кода.

class MyClass {

 private int _myIntField;


    private void setMyIntField(int value2Set) {
     _myIntField = value2Set;
    }

}

Ответ 6

_ обычно означает что-то личное или внутреннее. В стандартных библиотеках С++ все специфические переменные реализации должны начинаться с _.

Ответ 7

В большинстве языков это фактически не влияет на функциональность кода, но часто используется для обозначения зарезервированных или внутренних имен.

В некоторых языках принято называть вашу переменную экземпляра _image или image_, а затем использовать общедоступный метод для доступа к ней image().

Аналогично, некоторые имена, такие как __FILE__, используются на некоторых языках для обозначения специальной переменной или константы, созданной интерпретатором или компилятором; такие имена часто резервируются, чтобы побуждать программистов избегать использования этих имен в своих собственных программах в случае, если имена используются в будущих версиях языка.

Ответ 8

Ну символ подчеркивания (_) начинается с вашего имени переменной, но он легален, и некоторые люди используют его для идентификации как частной переменной, а некоторые для обозначения его в кеширующей переменной. Пройдите также с этой ссылкой.

Ответ 9

Другой вариант использования (в основном в javascript) - это когда вам нужно назначить текущий экземпляр этой локальной переменной, которую мы пишем ниже

var _this = this;

Если вам нужно создать локальную временную ссылку на объект, чтобы различать фактическую необходимую ссылку, мы создаем ниже

List<Employee> _employeeList = new ArrayList<>();
for (Employee _employee : employeeList) {}

Итак, если мы будем следовать этой лучшей практике, каждый раз, когда вы видите переменную с _, мы приходим к выводу, что ее использование для решения какой-либо деловой потребности в этом конкретном методе.

Ответ 10

Чтобы избежать использования зарезервированных ключевых слов или зарезервированных ключевых слов, их легче избежать. Единственное подчеркивание не рекомендуется и зарезервировано в JavaSE9.