Вопросы с тегом 'idioms'

Идиома программирования - это способ преодоления ограничения языка программирования и/или для написания часто используемого кода с целью, которая отделена от буквального значения кода. Кроме того, идиома является предпочтительным способом написания кода, когда есть более чем один очевидный способ сделать это.
38

var functionName = function() {} vs function functionName() {}

Недавно я начал поддерживать чужой код JavaScript. Я исправляю ошибки, добавляю функции, а также пытаюсь привести в порядок код и сделать его более согласованным. Предыдущий разработчик использовал два способа объявления функций, и я не могу понять...
03 дек. '08 в 11:31
35

Что делать, если __name__ == "__main__": делать?

Что делает if __name__ == "__main__":? # Threading example import time, thread def myfunction(string, sleeptime, lock, *args): while True: lock.acquire() time.sleep(sleeptime) lock.release() time.sleep(sleeptime...
07 янв. '09 в 4:11
57

Как объединить два словаря в одном выражении?

У меня есть два словаря Python, и я хочу написать одно выражение, которое возвращает эти два словаря, объединенные. Метод update() был бы тем, что мне нужно, если бы он возвращал свой результат вместо того, чтобы модифицировать диктат на месте. >...
02 сент. '08 в 7:44
8

Как я могу просмотреть карту карт C++?

Как я могу пройти через std::map в C++? Моя карта определяется как: std::map< std::string, std::map<std::string, std::string> > Например, вышеприведенный контейнер содержит такие данные: m["name1"]["value1"] = "data1"; m["name1"]["val...
30 янв. '11 в 19:13
10

Как реализовать шаблон метода factory в С++ правильно

Вот эта одна вещь в С++, которая заставляла меня чувствовать себя некомфортно в течение довольно долгого времени, потому что я честно не знаю, как это сделать, хотя это звучит просто: Как реализовать метод Factory в С++ правильно? Цель: предоста...
25 февр. '11 в 17:52
41

Как изменить массив int в Java?

Я пытаюсь изменить массив int в Java. Этот метод не отменяет массив. for(int i = 0; i < validData.length; i++) { int temp = validData[i]; validData[i] = validData[validData.length - i - 1]; validData[validData.length - i - 1] = temp;...
26 янв. '10 в 6:09
21

Как питонный способ обнаружить последний элемент в цикле for?

Я хотел бы знать лучший способ (более компактный и "питонический" способ) сделать специальную обработку для последнего элемента в цикле for. Существует фрагмент кода, который следует вызывать только между элементами, подавляя в последнем. Вот как я...
27 окт. '09 в 11:54
23

Идиома Python для возврата первого элемента или None

Я уверен, что есть более простой способ сделать это, что просто не происходит для меня. Я вызываю кучу методов, которые возвращают список. Список может быть пустым. Если список не пуст, я хочу вернуть первый элемент; в противном случае я хочу вернут...
12 дек. '08 в 19:56
17

Python: самый идиоматический способ конвертировать None в пустую строку?

Каков самый идиоматический способ сделать следующее? def xstr(s): if s is None: return '' else: return s s = xstr(a) + xstr(b) update: Я использую Tryptich предложение использовать str (s), что делает эту процедуру работ...
23 июн. '09 в 19:17
8

Что такое "Execute Around" идиома?

Что это за "Идущий вокруг" идиома (или подобное), о котором я слышал? Почему я могу использовать его, и почему я не хочу его использовать?
04 дек. '08 в 20:36
6

Проверьте, является ли переменная строкой в ​​Ruby

Есть ли что-то более идиоматическое, чем следующее? foo.class == String
13 окт. '11 в 4:18
11

"если ключ в dict" против "попробуй/кроме" - что является более читабельной идиомой?

У меня есть вопрос об идиомах и читаемости, и, по-видимому, существует столкновение философий Питона в этом конкретном случае: Я хочу построить словарь A из словаря B. Если конкретный ключ не существует в B, ничего не делайте и продолжайте. Какой с...
22 дек. '10 в 18:48
9

Есть ли недостаток в добавлении анонимного пустого делегата в объявление события?

Я видел несколько упоминаний об этой идиоме (включая на SO): // Deliberately empty subscriber public event EventHandler AskQuestion = delegate {}; Поверхность понятна - она ​​избегает необходимости проверять значение null перед тем, как поднимать ...
04 окт. '08 в 19:41
6

Пары из одного списка

Достаточно часто я нашел необходимость обрабатывать список по парам. Мне было интересно, какой будет питонический и эффективный способ сделать это, и нашел это в Google: pairs = zip(t[::2], t[1::2]) Я думал, что это было достаточно pythonic, но по...
07 янв. '11 в 17:20
12

Идиома для "для каждого, кроме последнего" (или "между каждой последовательной парой элементов" )

Каждый сталкивается с этой проблемой в какой-то момент: for(const auto& item : items) { cout << item << separator; } ... и вы получите дополнительный разделитель, которого вы не хотите в конце. Иногда он не печатает, но, скажем...
12 февр. '16 в 21:51