← Все вопросы

Почему имена функций — это глаголы вроде get, set, is, has?

Задан 35 месяцев назад1.1к просмотров2 ответа
6

Заметил, что функции почти всегда называют английскими глаголами: getUser, setName, isValid, hasAccess. Это случайность или есть правило? И что значат эти приставки is и has?

2 ответа

10
✓ Принятый ответ — помог автору

Это негласное соглашение всех программистов, и оно реально удобное. Логика простая: функция что-то ДЕЛАЕТ, а действие в английском — это глагол. Поэтому имя функции читается как команда:

  • get... — получить, вернуть значение: getName() = «дай имя»
  • set... — установить, задать значение: setName('Аня') = «поставь имя»
  • is... — проверка, отвечает true/false: isEmpty() = «пусто ли?», isValid() = «корректно ли?»
  • has... — проверка наличия, тоже true/false: hasAccess() = «есть ли доступ?»
  • calc... / compute... — посчитать, create / make — создать, delete / remove — удалить, update — обновить

Красота в том, что по имени сразу понятно, что функция делает и что вернёт. isReady() — явно вернёт да/нет. getTotal() — явно вернёт число. А переменные наоборот называют существительными (name, count), потому что они — вещь, а не действие. Так читать код в разы легче.

4

Хороший побочный эффект: это правило подтягивает английский. Чтобы назвать функцию, надо вспомнить глагол — «сохранить» это save, «загрузить» load, «отправить» send. За полгода кодинга так выучиваешь десятки глаголов намертво, потому что используешь их каждый день.

Ваш ответ

, чтобы ответить на вопрос.