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

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

30
var functionName = function () {} против функции functionName () {}
Недавно я начал поддерживать чужой код JavaScript. Я исправляю ошибки, добавляю функции, а также пытаюсь привести код в порядок и сделать его более согласованным. Предыдущий разработчик использовал два способа объявления функций, и я не могу понять, есть ли причина этого или нет. Два способа: var functionOne = function() { // …

30
Что делать, если __name__ == «__main__»: делать?
На этот вопрос есть ответы на Переполнение стека на русском : Что делают, если __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) if __name__ == "__main__": lock = thread.allocate_lock() …

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

16
Получить ключ, соответствующий минимальному значению в словаре
Если у меня есть словарь Python, как мне получить ключ к записи, которая содержит минимальное значение? Я думал о том, что делать с min()функцией ... Учитывая вход: {320:1, 321:0, 322:3} Это вернется 321.

9
Как я могу просмотреть карту карт C ++?
Как я могу пройти через std::mapC ++? Моя карта определяется как: std::map< std::string, std::map<std::string, std::string> > Например, вышеприведенный контейнер содержит данные, подобные этим: m["name1"]["value1"] = "data1"; m["name1"]["value2"] = "data2"; m["name2"]["value1"] = "data1"; m["name2"]["value2"] = "data2"; m["name3"]["value1"] = "data1"; m["name3"]["value2"] = "data2"; Как я могу пройти по этой карте и получить …

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

30
Как изменить массив 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]; validData[validData.length - …
238 java  arrays  idioms  idiomatic 

21
Как питонный способ обнаружить последний элемент в цикле for?
Я хотел бы знать лучший способ (более компактный и "питонический" способ) сделать специальную обработку для последнего элемента в цикле for. Существует фрагмент кода, который следует вызывать только между элементами, подавляя в последнем. Вот как я сейчас это делаю: for i, data in enumerate(data_list): code_that_is_done_for_every_element if i != len(data_list) - 1: …

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



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

10
ʻIf key in dict` vs.` try / except` - какая идиома более читабельна?
У меня вопрос об идиомах и удобочитаемости, и, похоже, в этом конкретном случае происходит столкновение философий Python: Я хочу построить словарь A из словаря B. Если определенный ключ не существует в B, ничего не делайте и продолжайте. Какой способ лучше? try: A["blah"] = B["blah"] except KeyError: pass или if "blah" …

3
Конкатенация строк с помощью Groovy
Каков наилучший (идиоматический) способ объединения строк в Groovy? Опция 1: calculateAccountNumber(bank, branch, checkDigit, account) { bank + branch + checkDigit + account } Вариант 2: calculateAccountNumber(bank, branch, checkDigit, account) { "$bank$branch$checkDigit$account" } Я обнаружил интересный момент по этой теме на старом веб-сайте Groovy: то, что вы можете сделать, но лучше …


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.