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

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

6876
var functionName = function () {} против функции functionName () {}

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

329
Как правильно реализовать шаблон фабричного метода в C ++

В C ++ есть одна вещь, которая заставляет меня чувствовать себя некомфортно в течение достаточно долгого времени, потому что я, честно говоря, не знаю, как это сделать, хотя это звучит просто: Как правильно реализовать Factory Method в C ++? Цель: позволить клиенту создавать экземпляры некоторого...

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

Я уверен, что есть более простой способ сделать это, что просто не происходит со мной. Я вызываю кучу методов, которые возвращают список. Список может быть пустым. Если список не пустой, я хочу вернуть первый элемент; в противном случае я хочу вернуть None. Этот код работает: my_list = get_list()...

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

На этот вопрос есть ответы на Stack Overflow на русском : Как перевернуть массив в Джаве? Я пытаюсь изменить массив int в Java. Этот метод не переворачивает массив. for(int i = 0; i < validData.length; i++) { int temp = validData[i]; validData[i] = validData[validData.length - i - 1];...

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

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

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

Какой самый идиоматичный способ сделать следующее? def xstr(s): if s is None: return '' else: return s s = xstr(a) + xstr(b) Обновление: я включил предложение Триптиха использовать str (s), что делает эту рутинную работу для других типов, кроме строк. Я очень впечатлен лямбда-предложением Vinay...

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

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

95
ʻIf key in dict` vs.` try / except` - какая идиома более читабельна?

У меня вопрос об идиомах и удобочитаемости, и, похоже, в этом конкретном случае происходит столкновение философий Python: Я хочу построить словарь A из словаря B. Если определенный ключ не существует в B, ничего не делайте и продолжайте. Какой способ лучше? try: A["blah"] = B["blah"] except...

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

Я видел несколько упоминаний этой идиомы (в том числе на SO ): // Deliberately empty subscriber public event EventHandler AskQuestion = delegate {}; Достоинства очевидны - это избавляет от необходимости проверять значение null перед запуском события. Однако я очень хочу понять, есть ли у этого...