Вы должны добавить название своего ключа API, например:
headerw = { 'ApiKey': 'xxxx-yyyy-zzz' }
Было бы приемлемо - если бы Ваш тип возврата был bool.
Это абсолютно приемлемо! На самом деле Joel упомянул это на последнем stackoverflow подкасте. Он сказал, что это была одна вещь, которую он должен был показать почти каждому программисту, который запускается в Ручье Вуали.
Первый случай совершенно хорош, намного лучше, чем второе, по моему скромному мнению. Как удобочитаемость, я лично сделал бы
return (a > 10);
но это - незначительная гнида, и не один все договорились бы.
return a > 10 ? 1 : 0;
... имеет больше смысла, потому что Вы возвращаете интервал, не bool.
Мало того, что тот синтаксис 100% приемлем, необходимо также не стесняться использовать булевы выражения за пределами если операторы, т.е. int x = i && ( j || k );
(или возвращающий значения как этот).
Я не вижу ничто плохого с ним. Если бы что-нибудь, это более кратко и я думаю, что большинство разработчиков с умеренным опытом предпочло бы его.
Я записал бы bool f(int);
и первая форма как bool boolean
введите в C++. Если я действительно должен возвратиться int
, Я записал бы что-то как
int f(int) {
...
const int res = (i>42) ? 1 : 0;
return res;
}
Я никогда не понимал, почему люди пишут
if (expr == true)
mybool = true ;
else
mybool = false;
вместо плоскости
mybool = expr;
Булева алгебра является инструментом, который любой разработчик должен смочь обработать инстинктивно
Кроме того, я определил бы именованный временный файл, поскольку некоторые отладчики не обрабатывают функциональные возвращаемые значения очень хорошо.
Я думаю, что часть его имеет отношение к стилю и культуре языка. Первый пример, который Вы записали, - то, что ожидалось бы от опытного программиста C. Они очень дросселировали бы себя, чем вставили бы ненужный блок операторов.
Я думаю, что совершенно приемлемо, когда язык позволяет его, и использование является частью парадигмы того языка
Я думаю ее совершенно приемлемое, при условии, что Вы удостоверяетесь, чтобы Вы приложили дополнительное усилие для поддержания удобочитаемости. Как я удостоверился бы, что имя метода очень однозначно, и Вы используете хорошие имена переменной.
Вторая альтернатива, что Вы, если я думаю, почти хуже, потому что она включает оператор ветвления и несколько операторов возврата и эти вещи, увеличивает сложность метода, сами уменьшая его удобочитаемость.
Первое очень предпочтительно для меня, так как это более кратко. (И это избегает нескольких возвратов:)
Я только что попробовал три разных варианта с GCC:
int one(int x) { return (x > 42) ? 1 : 0; }
int two(int x) { return x > 42; }
int thr(int x) { if (x > 42) return 1; else return 0; }
Как только вы включаете некоторую оптимизацию, сгенерированный код для всех них одинаков. Поэтому следует использовать тот вариант, который легче всего читать.