Что такое имя функции
В программировании функция представляет собой блок кода, который может быть вызван по имени и выполняет определенную задачу. Однако, перед вызовом функции, необходимо определить ее имя. Имя функции играет важную роль в программе, так как оно позволяет обращаться к функции и использовать ее в различных частях программы.
В языках программирования обычно существуют определенные правила для определения имени функции. Имя функции может состоять из одного или нескольких слов, но оно должно быть уникальным в рамках программы. Также, имя функции может содержать только буквы (заглавные или строчные), цифры и символ подчеркивания. Нельзя использовать пробелы или специальные символы, такие как %, *, $ и т.д.
При выборе имени функции важно следовать определенным соглашениям и стандартам кодирования, принятых в языке программирования или в команде разработчиков. Обычно, имена функций выбираются таким образом, чтобы они были легко понятными и описывали свою функциональность. Часто для именования функций используются глаголы с указанием действия, которое выполняет функция.
Например, если функция служит для вычисления суммы двух чисел, она может быть названа «calculateSum» или «getSum». Если функция отвечает за вывод сообщения на экран, ее имя может быть «printMessage» или «displayMessage».
Кроме того, при определении имени функции важно учитывать принципы именования переменных и других элементов программы. Это поможет сделать код более понятным, читаемым и легко сопровождаемым. Используя информативные имена функций, вы можете сделать код более понятным для себя и для других разработчиков, которые будут работать с вашим кодом в будущем.
Имя функции: определение и значение в программировании
Имя функции является одним из важных аспектов программирования. Функции позволяют группировать программный код для выполнения определенных задач. Имя функции определяет ее идентификатор, который используется для обращения к функции из других участков кода.
Имя функции обычно отражает назначение и выполняемое действие данной функции. Хорошее имя функции должно быть ясным, описательным и лаконичным. Оно должно передавать суть и цель функции, чтобы другим программистам было легко понять ее назначение при чтении кода.
Однако, существуют также специфические правила для определения имен функций в различных языках программирования. Например, в некоторых языках допускается использование только букв, цифр и символов подчеркивания в имени функции. В других языках могут быть допустимы и другие специальные символы или длинные имена функций.
В большинстве языков программирования имена функций являются чувствительными к регистру символов. Это означает, что функции с разным регистром букв будут считаться разными функциями.
Значение имени функции в программировании заключается в возможности обращения к функции из других частей программы и использования ее для выполнения определенных задач. Правильно выбранное имя функции может значительно упростить чтение и понимание кода, а также помочь в поддержке и дальнейшей разработке программного продукта.
Имя функции: что это?
Имя функции в программировании — это уникальное название, которое присваивается определенному блоку кода, чтобы можно было обращаться к нему из других частей программы.
Имя функции служит для идентификации и вызова определенных действий или операций. Оно позволяет различать функции по их назначению и использовать их повторно в разных частях кода.
Важно выбирать интуитивно понятные и описательные имена для функций, чтобы было легко понять их назначение без изучения самого кода.
Примеры хороших имен функций:
- calculateSum() — вычисление суммы;
- checkLogin() — проверка входа;
- sendEmail() — отправка электронной почты;
- retrieveData() — получение данных;
- displayMessage() — отображение сообщения.
Имена функций могут содержать буквы, цифры и символы подчеркивания, но должны начинаться с буквы или символа подчеркивания. Также они чувствительны к регистру. Например, функции с именами myFunction , myfunction и MyFunction будут восприниматься как разные функции.
Имя функции может быть любой длины, но желательно выбирать имена, которые будут легко запомнить и понять другим разработчикам, работающим с вашим кодом.
Хорошие практики при выборе имени функции включают использование глаголов для указания действия, которое функция выполняет, и использование существительных или прилагательных для указания объектов или свойств, с которыми функция работает.
Перед использованием функции в программе ее имя должно быть определено и объявлено. В большинстве языков программирования существуют определенные синтаксические правила для объявления функций и присвоения им имен.
Таким образом, имя функции в программировании помогает обеспечить читаемость, понятность и организацию кода, упрощая его дальнейшую разработку, сопровождение и модификацию.
Значение имени функции в программировании
В программировании имя функции является одним из важных элементов, которые используются для организации и структурирования кода. Имя функции представляет собой уникальную строку символов, которая идентифицирует определенный блок кода.
Значение имени функции может использоваться для вызова функции в других частях программы. При вызове функции, используется её имя, и компьютер выполняет код, который был написан внутри функции.
Имя функции должно быть уникальным в пределах программы или модуля, чтобы избежать конфликтов и путаницы.
Не все имена можно использовать в качестве имени функции. Обычно существуют определенные правила и ограничения, которые определяют, какие символы могут использоваться в имени функции. Например, обычно в имени функции можно использовать только буквы, цифры и нижнее подчеркивание. Некоторые языки программирования также могут требовать, чтобы имя функции начиналось с буквы или подчеркивания.
Имя функции также может иметь значение в контексте документации программы. Хорошо выбранное и понятное имя функции облегчает чтение и понимание кода другим разработчикам. Используя наглядные, описательные и понятные имена функций, вы можете сделать свой код более понятным и поддерживаемым.
Как определить имя функции в программировании
В программировании, имя функции — это идентификатор, который отличает одну функцию от другой. Как правило, имя функции выбирается так, чтобы оно отражало ее назначение и было описательным. Хорошо выбранное имя функции может значительно облегчить понимание кода и его поддержку.
Имя функции может состоять из букв, цифр и символа подчеркивания. Однако, существуют определенные правила и рекомендации по выбору имени функции:
- Имя функции должно быть кратким и понятным. Оно должно ясно указывать на то, что делает функция.
- Принятой практикой является использование глаголов для обозначения действия, выполняемого функцией. Например: calculateSum , printMessage .
- Должно быть избегано использование общих слов, которые могут быть перегружены в стандартной библиотеке или других модулях. Например, не рекомендуется называть функцию print или sum .
- Имя функции должно быть написано в смешанном регистре, начиная с маленькой буквы. Если имя функции состоит из нескольких слов, то принято использовать стиль «lowerCamelCase», где каждое следующее слово начинается с заглавной буквы, без пробелов или подчеркиваний. Например: calculateSum , printMessage .
Примеры имен функций:
- calculateSum — функция для вычисления суммы.
- printMessage — функция для вывода сообщения.
- getUserData — функция для получения данных пользователя.
- validateEmail — функция для проверки корректности email.
Наименование функции — это важный аспект разработки программного кода. Грамотное именование функций позволяет создать понятный и читабельный код, упростить его последующую поддержку и улучшить коммуникацию в команде разработчиков.
Вопрос-ответ
Что такое имя функции?
Имя функции — это уникальное идентификатор, который присваивается блоку кода программы, чтобы сослаться на этот блок кода и вызвать его при необходимости.
Как определяется имя функции в программировании?
Имя функции определяется разработчиком в момент создания функции. Оно должно быть уникальным в рамках данной программы и соответствовать определенным правилам именования переменных.
Может ли имя функции содержать пробелы или специальные символы?
Нет, имя функции не может содержать пробелы или специальные символы, кроме символа подчеркивания «_». Также оно должно начинаться с буквы или символа подчеркивания.
Могут ли у функции быть одинаковые имена?
Да, функции в программе могут иметь одинаковые имена, но только если они находятся в разных областях видимости. Такую ситуацию можно встретить, например, при использовании понятия «перегрузка функций».
Имена процедур и функций
Область применения: управляемое приложение, мобильное приложение, обычное приложение.
1. Правильный выбор имен процедур и функций очень важен для повышения читаемости кода. В большинстве случаев хорошо выбранное имя процедуры в сочетании с правильно подобранными именами параметров избавляют от необходимости ее как-то дополнительно описывать. В ряде случаев, сложности в выборе имени процедуры и (или) ее параметров свидетельствуют о неправильной архитектуре программного кода. И наоборот, если «самодокументирующееся» имя придумать легко, значит процедура спроектирована правильно.
2. Имена процедур, функций и формальных параметров следует образовывать от терминов предметной области таким образом, чтобы из имени было понятно назначение. Следует стремиться к тому, чтобы имена были «говорящими» (документировали сами себя).
Например, неправильно:
Функция ВыполнитьПроверку(Параметр1, Рекв, ТЗ) Функция ПолучитьМассивыРеквизитов(ХозяйственнаяОперация, МассивВсехРеквизитов, МассивРеквизитовОперации)
Функция РеквизитОбъектаЗаданногоТипа(Объект, ИмяРеквизита, ТипЗначения) Функция ЗаполнитьИменаРеквизитовПоХозяйственнойОперации(ХозяйственнаяОперация, ИменаВсеРеквизиты, ИменаРеквизитыОперации)
3. Имена следует образовывать путем удаления пробелов между словами. При этом, каждое слово в имени пишется с прописной буквы. Предлоги и местоимения из одной буквы также пишутся прописными буквами.
Методическая рекомендация (полезный совет)
4. Не рекомендуется в названиях процедур и функций описывать типы принимаемых параметров и (или) возвращаемых значений.
Функция ПолучитьМассивРолейСПравомДобавления() Функция ПолучитьСтруктуруДополнительныхНастроек()
Функция ИменаРолейСПравомДобавления() Функция ДополнительныеНастройки()
Эта рекомендация справедлива в большинстве случаев за редким исключением, когда без описания типа возвращаемого значения не ясно назначение самой процедуры или функции.
5. Имена процедур в общем случае, следует образовывать от неопределенной формы глагола, от сути выполняемого действия, например:
Процедура ЗагрузкаКонтрагента()
Процедура ЗагрузитьКонтрагента()
6.1. Имена функций в общем случае следует образовывать от описания возвращаемого значения.
Функция ПолучитьПолноеИмяПользователя() Функция СоздатьПараметрыЗаполненияЦенПоставщика() Функция ОпределитьДатуНачалаСеанса()
Функция ПолноеИмяПользователя() Функция НовыеПараметрыЗаполненияЦенПоставщика() Функция ДатаНачалаСеанса()
6.2. Если функция предназначена для создания какого-либо объекта, то рекомендуется в ее имени использовать слово «Новый». Например,
Неправильно:
Функция ДобавитьПолеФормы() Функция СоздатьЭлементСправочникаФайлы() Функция ПолучитьТаблицуКоманд()
Функция НовоеПолеФормы() Функция НовыйЭлементСправочникаФайлы() Функция НоваяТаблицаКоманд()
6.3. Если функция выполняет проверку какого-то условия, то ее имя рекомендуется начитать со слова «Это» или использовать причастия.
Неправильно:
Функция ПроверитьПроведенностьДокумента() Функция ПроверитьИзменениеРеквизитовДокумента() Функция ВнешняяЗадача()
Функция ДокументПроведен() Функция РеквизитыДокументыИзменены() Функция ЭтоВнешняяЗадача()
6.4. В имени функции рекомендуется использовать глаголы в неопределенной форме в тех случаях, когда для понимания назначения функции важно, каким образом было получено возвращаемое значение. Например:
Функция ВыбратьДанныеПоПравилу(Правило, ПользовательскиеНастройки) Функция ПреобразоватьДанныеПоПравилу(НаборыДанных, ПараметрыПреобразования)
6.5. Если выполнение функции предполагает, прежде всего, какое-либо действие, и при этом возврат значения не является ее основной задачей (например, это признак успешно выполненного действия), то имена таких функций следует образовывать от неопределенной формы глагола, как и для процедур.
Например:
Функция РазрешитьРедактированиеРеквизитовОбъекта(Форма)
Function.name
Read-only свойство name глобального объекта Function и его экземпляров содержит название функции созданное во время определения функции или присваивания ссылки на функцию переменной, свойству, аргументу и т. п. Для анонимных функций это свойство может иметь значение «anonymous» или пустую строку «» .
Интерактивный пример
Интерактивные примеры размещены в GitHub репозитории. Если вы хотите добавить свои примеры, то клонируйте https://github.com/mdn/interactive-examples и пришлите пул реквест.
Атрибуты свойства Function.name | |
---|---|
Записываемое | нет |
Перечисляемое | нет |
Настраиваемое | да |
Примечание: Заметьте, что в нестандартном, pre-ES2015 релизе configurable свойство было false
Примеры
Имя объявленной функции
Свойство name возвращает имя функции, либо пустую строку для анонимных функций:
function doSomething() > alert(doSomething.name); // выведет "doSomething"
Имя функции-конструктора
Функции, созданные синтаксисом new Function(. ) или просто Function(. ) создают Function и имеют name «anonymous»:
new Function().name; // "anonymous"
Предполагаемые имена функций
Переменные и методы могут предположить название анонимной функции из её синтаксической позиции (new in ECMAScript 2015).
var f = function () >; var object = someMethod: function () >, >; console.log(f.name); // "f" console.log(object.someMethod.name); // "someMethod"
Вы можете определить функцию с именем в function expression:
var object = someMethod: function object_someMethod() >, >; console.log(object.someMethod.name); // выведет "object_someMethod" try object_someMethod; > catch (e) console.log(e); > // ReferenceError: object_someMethod is not defined
Вы не можете изменить имя функции, это свойство только для чтения:
var object = // анонимная функция someMethod: function () >, >; object.someMethod.name = "otherMethod"; alert(object.someMethod.name); //someMethod
Для изменения name можно использовать Object.defineProperty() .
Сокращённые имена методов
var o = foo() >, >; o.foo.name; // "foo";
Имена функций после привязки
Function.bind() производит функцию, получающую имя «bound и название самой функции.
function foo() > foo.bind(>).name; // "bound foo"
Имена функций для getters и setters
Когда используются get и set, «get» и «set» появятся в имени функции.
let o = < get foo()<>, set foo(x)<> >; var descriptor = Object.getOwnPropertyDescriptor(o, "foo"); descriptor.get.name; // "get foo" descriptor.set.name; // "set foo";
Имена функций-классов
Можно использовать obj.constructor.name чтобы проверить «class» объекта (читайте предупреждение ниже):
function Foo() <> // ES2015 Syntax: class Foo <> var fooInstance = new Foo(); console.log(fooInstance.constructor.name); // logs "Foo"
Предупреждение: Интерпретатор объявит встроенное Function.name свойство только если функция не имеет своего собственного свойства name (см. 9.2.11 of the ECMAScript2015 Language Specification). Однако, в ES2015 статичные методы перезаписывают OwnProperty конструкторов класса-функции (ECMAScript2015, 14.5.14.21.b + 12.2.6.9).
Таким образом, нельзя получить доступ к name любого класса со статичным свойством name():
class Foo constructor() > static name() > >
Со static name() методом Foo.name больше не содержит название класса, но отсылает к функции name() . Приведённое выше определение класса в ES2015 будет вести себя в Chrome и Firefox как в ES5:
function Foo() <> Object.defineProperty(Foo, 'name', < writable: true >); Foo.name = function() <>;
Пытаясь получить доступ к fooInstance с помощью fooInstance.constructor.name не даст название класса, но выведет метод name() . Пример:
let fooInstance = new Foo(); console.log(fooInstance.constructor.name); // logs function name()
Из ES5 syntax примера также видно, что в Chrome или Firefox статичное определение Foo.name становится записываемым (writable). Встроенное определение в отсутствии кастомного статичного методадоступно только для чтения:
Foo.name = 'Hello'; console.log(Foo.name); // logs "Hello" if class Foo has a static name() property but "Foo" if not.
Следовательно не ожидайте, что Function.name свойство будет всегда содержать имя класса.
Имена функций-символов
Если у Symbol объявляется имя, то название метода — это имя квадратных скобках.
let sym1 = Symbol("foo"); let sym2 = Symbol(); let o = [sym1]: function () >, [sym2]: function () >, >; o[sym1].name; // "[foo]" o[sym2].name; // ""
JavaScript минифицированный
Предупреждение: Будьте осторожны, используя Function.name и изменения source кода с помощью JavaScript compressors (minifiers) или обфускаторов. Эти инструменты часто используются, как встроенные в JavaScript build pipeline, чтобы сократить размер билда перед деплоем в production. Такие трансформации часто изменяют имена функций.
Такой source code:
function Foo() <>; let foo = new Foo(); if (foo.constructor.name === ‘Foo’) < console.log("'foo' is an instance of 'Foo'"); >else
может быть сжат в:
function a() <>; let b = new a(); if (b.constructor.name === ‘Foo’) < console.log("'foo' is an instance of 'Foo'"); >else
В несжатой версии код выполняется ожидаемо «‘foo’ is an instance of ‘Foo'» . В то время, как в сжатой версии он ведёт себя иначе. Если вы полагаетесь на Function.name , как в примере, то убедитесь, что pipeline не меняет код или не ожидайте от функции определённого имени.
Спецификации
Specification |
---|
ECMAScript Language Specification # sec-function-instances-name |
Совместимость с браузерами
BCD tables only load in the browser
Found a content problem with this page?
- Edit the page on GitHub.
- Report the content issue.
- View the source on GitHub.
This page was last modified on 18 окт. 2023 г. by MDN contributors.
Your blueprint for a better internet.
Имя функции
Дело было в студенческие годы. Я учился на факультете информационных технологий и там на парах нам рассказывали о передовых технологиях программирования, вроде турбо паскаля и бейсика.
Это был первый курс, предмет назывался, как сейчас помню «Программирование на ЯВУ (на языке высокого уровня)». В связи с этим у нас была популярна песня группы Ария «Я свободен», где мы чуть изменили слова:
И дали как-то раз нам задание: разработать на Паскале функцию. На входе мы получали строку и символ, на выходе длину строку без этого символа.
Справившись с заданием, я вспомнил, что лабораторную работу будет принимать скверная женщина, которая любила докапываться к разным мелочам. Взглянув на свою функцию, которая называлась «F», я понял, что рабочее название нужно срочно менять.
Итак, что делает функция? Правильно, возвращает длину строки. Так и назовем — stringLength. Да не, отстой, там же есть символ, надо чтобы в названии функции передалось это. Может назовем так — stringLengthWithoutChar. Полный отстой, слишком сложно для такой простой функции. Но без чар и стрингов тоже никак, они нужны. Может charStringLength? Все еще громоздко. А может charLength. Да точно! И сразу понятно, что в данной функции используется символ и длина строки. Всё, готово!
Стоп. А как правильно пишется, Length или Lenght, прикапается же к неправильному написанию. Пофиг, сократим ненужную часть, в которой сомневается. Ну вот, а теперь несимметрично, слева полное слово, а справа обрезанное, непорядок, надо и справа обрезать. Во, теперь вообще идеально!
И назвал я свою функцию chLen и смотрел я на неё и думал.
И с этими мыслями я лег спать.
Началась пара. Я сидел за своим ноутбуком, подключенному к проектору и объяснял как работает моя программа. Преподаватель уныло смотрела в журнал и что-то записывала, иногда для приличия задавая какие-то примитивные вопросы.
«Хорошо RuMaxer, как называется ваша функция и что она делает?»
«Я назвал свою функцию Чэ лен, на входе она принимает строку и символ. «
«Как, как, как — перебив меня переспросила офигевшая преподаватель.
«Чэ лен» — громко произнес я.
В аудитории тут же перестали шуметь, услышав это слово.
«Функция Чэ лен принимает. «
«Да что это такое, в самом-то деле! Подождите-ка минутку» — Преподаватель тоже не поверила своим ушам, встала со стола и подошла к изображению на доске. Поверила своим ушам. Посмотрела на меня. Вид у меня был серьезный и раздраженный (в самом-то деле, не дают рассказать), но явно не нахальный.
«И. почему же вы назвали свою функцию. так?» — повысив свой тон, спросила она.
«Да потому что она измеряет длину строки, чего тут непонятного-то!» — также раздраженно ответил я, чуть ли не крикнув.
Зал разразился смехом, я стоял в непонятках, и тут какой-то двоечник хмыкнул «функция член, измеряет длину строки, ну ты даешь», и тут до меня дошло. Я посмотрел на доску и в первый раз увидел то, что раньше мозг отказывался воспринимать.
«У тебя случайно не синдром Туретта» — гневно спросила преподаватель, когда поняла, что я осознал написанное.
Я густо покраснел и под общий хохот выбежал из аудитории. Мне казалось, что моя карьера программиста завершена. PS дальше идет немного бреда = >Ну кто примет программиста с синдромом Туретта в коде на работу, даже если он обожает программировать? Оставалось только одно: сидеть на форумах по программированию и помогать с задачами, как этот парень.
Но как бы я не боялся, моя история быстро потеряла хайп после следующей. Дело в том, что мою задачу нагло скопипастила следующая группа, у которой был урок после нашего.
Первой свою задачу на проекторе показывала скромная девушка Маша, и как только код отобразился на доске, преподаватель воскликнул:
«О горе мне! Маша! У тебя что, тоже chLen?!»
И в тот момент взор студентов устремился не на проектор, а на Машу. Они не поняли преподавателя.
5.3K постов 52K подписчиков
Подписаться Добавить пост
Правила сообщества
Не публикуем посты:
1) с большим количеством мата
2) с просьбами о помощи
3) не относящиеся к IT-юмору
4 года назад
Да, старая история на баше была, где чувак говорил, что необдуманно было называть функцию, отрисовывавшую детей — drawChildren()
раскрыть ветку
4 года назад
Когда придумываешь имя для новой переменной:
раскрыть ветку
4 года назад
Может я дурак, на как именно по этому имени функции можно понять,что она делает? Тебе нужна длина строки. ТАК ПРИЧЕМ ТУТ СРАНЫЙ character?! strLen, но никак не chLen даже и близко.
раскрыть ветку
4 года назад
stringLengthWithoutChar — самое норм название было.
раскрыть ветку
4 года назад
Минутка занудства: «Я свободен» — песня не Арии, а с сольного альбома вокалиста Арии Кипелова и экс-гитариста Арии Маврина.
раскрыть ветку
Похожие посты
3 дня назад
Тайна раскрыта(олды поймут)
Показать полностью 1
Поддержать
3 дня назад
Веб разработка
Поддержать
4 дня назад
Просто монстр
Показать полностью 2
5 дней назад
Важный помощник в нашей работе
Показать полностью 2
5 дней назад
Главное не говорить, что это именно ты и свалить всё на обновление системы
9 месяцев назад
Ответ на пост «Как полезно и важно порой чувствовать себя идиотом»
На мой взгляд, проблема обучения программированию, что дают знания не обучая отладке, особенно в универе. Редко кто говорит о типичных ошибках начинающих программистов. Редко задачу дробят, чтобы объяснить (Особенно при вложенных циклах for). Никогда не забуду про операции с матрицами в C. Редко делают разбор нескольких сложных задач. На обычных курсах дают пару тривиальных примеров , а в домашнем задании примеры не соответствуют уровню пройденного занятия и сложность задач растет в геометрической прогрессии. Частая проблема новичков в невнимательности и преподавателей это сильно раздражает. Программирование на С/С++ в начале 00-ых мне далось очень тяжело, сказалось отсутствие ПК дома. Преподаватель по С (по совместительству бывший завкафедры и к.т.н) при группе сказал , что такие как я не доучиваются (ладно бы если сам про себя сказал,а тут публично считай назвали идиотом), но так получилось я всё-таки доучился , а те кто знал лучше меня C далеко не все доучились. Я тогда взял себе за правило, если буду когда-либо помогать в обучении, то всегда буду относиться обучающемуся с уважением (без снобизма, подколок), если возникает непонимание, переформулировать иначе и кроме того я обучал на реальных задачах. Если студент не понял и/или ошибается, это не только проблема студента, но и того кто обучает. Сейчас немного программирую на Python, занимаюсь парсингом при помощи xpath и regex. Иногда помогаю в изучении питона знакомому школьнику. По его словам обучение со мной оказалось гораздо интереснее и полезнее чем с преподавателем. К счастью или к сожалению, программирование начинается сколько не с программирования , а прежде всего с умения анализировать (в точнее умении декомпозировать задачу), умении сконцентрироваться и не отвлекаться (по началу списать код с учебника без ошибок сложно), многократном повторении пройденного материала, в самостоятельном поиске информации, умении задавать правильные вопросы и запросы в поисковой системе.