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

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

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

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

Что делать, если __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 в 7:11
42
ответов

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

У меня есть два словаря Python, и я хочу написать одно выражение, которое возвращает эти два словаря, слияние. Метод update() будет тем, что мне нужно, если он вернет результат, а не изменит dict на месте. >>> x = {'a':1, 'b': 2} >>&...
задан 02 сент. '08 в 10:44
7
ответов

Как перемещаться по карте карт С++?

Как бы я прошел через std::map в С++? Моя карта определяется как: std::map< std::string, std::map<std::string, std::string> > Например, это содержит следующие данные: m["name1"]["value1"] = "data1"; m["name1"]["value2"] = "data2"; m["...
задан 30 янв. '11 в 22:13
10
ответов

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

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

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

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

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

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

Что такое pythonic способ обнаружить последний элемент цикла python for?

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

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

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

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

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

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

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

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

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

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

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

Общие рубиновые идиомы

Одна вещь, которую я люблю в рубине, состоит в том, что в основном это очень читаемый язык (что отлично подходит для самодокументирующего кода) Однако, вдохновленный этим вопросом: объяснил Ruby Code и описание того, как ||= работает в рубине, я ду...
задан 05 марта '09 в 11:35
20
ответов

Лучшая рубиновая идиома для "ноль или ноль"

Я ищу краткий способ проверить значение, чтобы узнать, равен ли он нулю или нулю. В настоящее время я делаю что-то вроде: if (!val || val == 0) # Is nil or zero end Но это кажется очень неуклюжим.
задан 16 окт. '08 в 20:19