Вопросы с тегом «operators»

Что касается языков программирования, операторы - это конструкции, которые обычно ведут себя как функции, но синтаксически или семантически отличаются от обычных функций. Из Википедии: http://en.wikipedia.org/wiki/Operator_%28programming%29

94
Почему определяемые пользователем операторы не являются более распространенными?

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

88
Оценка короткого замыкания, это плохая практика?

Что-то, что я знал некоторое время, но никогда не рассматривал, это то, что в большинстве языков можно отдавать приоритет операторам в операторе if на основе их порядка. Я часто использую это как способ предотвращения исключений нулевой ссылки, например: if (smartphone != null &&...

82
Я не понимаю аргументы против перегрузки операторов [закрыто]

Я только что прочитал одну из статей Джоэла, в которых он говорит: В общем, я должен признать, что я немного боюсь языковых особенностей, которые скрывают вещи . Когда вы видите код i = j * 5; … В C вы знаете, по крайней мере, что j умножается на пять, а результаты сохраняются в i. Но если вы...

79
Почему битовые маски называют «масками» и какой цели они служат?

Почему "битовые маски" называются так? Я знаю, что они в основном используются для побитовых операций, и использование битовых масок более эффективно, чем использование отдельных переменных. Однако мой вопрос: почему и когда были изобретены битовые маски? Были ли они использованы с ранних...

79
Тройного оператора считают вредным? [закрыто]

Например, вы бы предпочли эту однострочную int median(int a, int b, int c) { return (a<b) ? (b<c) ? b : (a<c) ? c : a : (a<c) ? a : (b<c) ? c : b; } или решение if / else, включающее несколько операторов return? Когда ?:уместно, а когда нет? Следует ли этому учить или скрывать от...

64
Почему знак минус «-», как правило, не перегружается так же, как знак плюс?

Знак плюс +используется для сложения и конкатенации строк, но его компаньон: знак минус -, как правило, не виден для обрезки строк или какого-либо другого случая, кроме вычитания. В чем может быть причина или ограничения для этого? Рассмотрим следующий пример в JavaScript: var a = "abcdefg"; var b...

63
Почему побитовые операторы имеют более низкий приоритет, чем сравнения?

Может ли кто-нибудь объяснить обоснование, почему в группе самых популярных языков (см. Примечание ниже) операторы сравнения (==,! =, <,>, <=,> =) Имеют более высокий приоритет, чем побитовые операторы (&, |, ^ ~) Я не думаю, что я когда-либо сталкивался с использованием, где этот...

60
Использование перечисляемых областей для битовых флагов в C ++

enum X : int(С #) или enum class X : int(C ++ , 11) представляет собой тип , который имеет скрытое внутреннее поле , intкоторый может содержать любое значение. Кроме того, Xв перечислении определен ряд предопределенных констант . Можно привести перечисление к его целочисленному значению и наоборот....

59
Как зовут ** в Python?

При программировании на Python я иногда делаю **конверсию. Я понимаю, что он делает, но какими структурами данных я манипулирую? А dictкакой другой? array? Есть ли название для...

50
Почему == оператор сравнения значений строк не попал в Java?

Каждый компетентный Java-программист знает, что вам нужно использовать String.equals () для сравнения строки, а не ==, потому что == проверяет равенство ссылок. Когда я имею дело со строками, большую часть времени я проверяю равенство значений, а не ссылочное равенство. Мне кажется, что было бы...

34
Насколько хорош должен быть разносторонний программист для побитовых операций? [закрыто]

Недавно я просматривал некоторый код OpenJDK и нашел там несколько интригующих фрагментов кода, связанных с побитовыми операциями . Я даже задал вопрос об этом на StackOverflow. Еще один пример, который иллюстрирует суть: 1141 public static int bitCount(int i) { 1142 // HD, Figure 5-2 1143 i = i -...

34
Почему большинство основных языков не поддерживают синтаксис «x <y <z» для трехсторонних логических сравнений?

Если я хочу сравнить два числа (или другие хорошо упорядоченные объекты), я бы сделал это с x < y. Если я захочу сравнить три из них, ученик средней школы по алгебре предложит попробовать x < y < z. Затем программист во мне ответит: «Нет, это не правильно, вы должны это сделать x < y...

32
Почему каретка использовалась для XOR вместо возведения в степень?

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

29
Почему логический тип в C ++ поддерживает ++, а не -?

Почему оператор --не существует для bool, а для оператора ++? Я пробовал в C ++, и я не знаю, относится ли мой вопрос к другому языку. Я буду рад узнать также. Я знаю , я могу использовать оператор ++с бул. Это делает любое bool равным истине. bool b = false; b++; // Now b == true. Почему мы не...

28
Есть ли причина, по которой большинство языков программирования не имеют операторов '!> (Не больше) и'! <'(Не меньше)?

Хотите улучшить этот пост? Предоставьте подробные ответы на этот вопрос, включая цитаты и объяснение того, почему ваш ответ правильный. Ответы без достаточной детализации могут быть отредактированы или удалены. Интересно, есть ли какая - либо причина - или , если это не просто случайность истории...

28
Когда я проверяю разницу во времени между сдвигом и умножением в C, нет никакой разницы. Зачем?

Меня учили, что сдвиг в двоичном коде намного эффективнее, чем умножение на 2 ^ k. Поэтому я хотел поэкспериментировать, и я использовал следующий код, чтобы проверить это: #include <time.h> #include <stdio.h> int main() { clock_t launch = clock(); int test = 0x01; int runs; //simple...

27
В чем преимущество того, что оператор присваивания возвращает значение?

Я занимаюсь разработкой языка, который намереваюсь заменить как Javascript, так и PHP. (Я не вижу никаких проблем с этим. Не похоже, чтобы у любого из этих языков была большая база установки.) Одной из вещей, которые я хотел изменить, было превратить оператор присваивания в команду присваивания,...