Я должен всегда давать возвращаемое значение своей функции?

Правильным способом было бы вызвать собственный API реестра и передать флаг KEY_WOW64_32KEY в RegOpenKeyEx / RegCreateKeyEx

11
задан Török Gábor 24 May 2009 в 07:36
поделиться

5 ответов

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

18
ответ дан 3 December 2019 в 03:53
поделиться

У меня следующий вопрос: у меня есть функция, которая не должна (и не возвращает) значение. Имеет ли смысл в контексте функционального программирования иметь функцию без явного возвращаемого значения? Или где-то случился сбой, если бы я оказался в этом случае?

Согласно академическому описанию функции: функция должна выдавать тот же результат при вводе. Функция, не имеющая вывода, абсолютно бесполезна, потому что функции не должны иметь побочных эффектов.

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

5
ответ дан 3 December 2019 в 03:53
поделиться

Совершенно нормально иметь функцию, которая ничего не возвращает. Фактически, заставлять функцию, которая, естественно, не будет иметь возвращаемого значения, будет неудобно, а плохо пахнет .

2
ответ дан 3 December 2019 в 03:53
поделиться

Функцию, которая производит только побочный эффект, можно рассматривать просто как изолированный программный блок, такой же, как блок процедуры. Поскольку в JS нет процедур, нет ничего плохого в использовании функции в качестве блока процедуры. Единственное исключение, что функции в JS тоже являются объектами, поэтому будьте осторожны с широким использованием таких «функций».

В этом случае это просто увеличивает читаемость программы.

1
ответ дан 3 December 2019 в 03:53
поделиться

Если вы не должны использовать результат LIB_hashManager , я думаю, вам следует обязательно вернуть undefined (т. Е. Вообще не иметь оператора возврата) .

Если вы забудете это и все равно попытаетесь использовать результат функции, вы, вероятно, просто получите сообщение об ошибке (и это нормально, поскольку это будет ошибка программирования, ошибка!)

0
ответ дан 3 December 2019 в 03:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: