Информация об изменениях

Сообщение Re[5]: Python и JavaScript от 10.06.2019 6:58

Изменено 10.06.2019 6:59 Буравчик

Re[5]: Python и JavaScript
Здравствуйте, Lazytech, Вы писали:

L>Разве? Я о том, что в JavaScript, как и в Python, бывают такие заковыристые конструкции:

L>Как мне кажется, это даже покруче смешения чисел со строками.

Во-первых, конструкция
myVar || 0

это идиома, используемая в некоторых языках. В принципе, достаточно понятная. В некоторых языках для этого вводят вводят новый оператор, типа "??".
В питон тоже тоже думают ввести операторы для null.

Во-вторых, только в javascript при получении отсутствующего элемента из массива возврщается null (undefined). На мой взгляд, это один из самых серьезных косяков js.
Это сильно отличается от питона и других языков, в них, как и в питоне, будет брошено исключение.

Поэтому на питоне было бы скорее все так:
itemCounts[item] = itemCounts.get(item, 0) + 1

или
itemCounts.setdefault(item, 0)
itemCounts[item] =+ 1;

или вообще лучше использовать defaultdict. Как раз для этих целей сделан (в стандартной библиотеке).
Re[5]: Python и JavaScript
Здравствуйте, Lazytech, Вы писали:

L>Разве? Я о том, что в JavaScript, как и в Python, бывают такие заковыристые конструкции:

L>Как мне кажется, это даже покруче смешения чисел со строками.

Во-первых, конструкция
myVar || 0

это идиома, используемая в некоторых языках. В принципе, достаточно понятная. В некоторых языках для этого вводят вводят новый оператор, типа "??".
В питон тоже тоже думают ввести операторы для null.

Во-вторых, только в javascript при получении отсутствующего элемента из массива возврщается null (undefined). На мой взгляд, это один из самых серьезных косяков js.
Это сильно отличается от питона и других языков, в них, как и в питоне, будет брошено исключение.

Поэтому на питоне было бы скорее все так:
itemCounts[item] = itemCounts.get(item, 0) + 1

или
itemCounts.setdefault(item, 0)
itemCounts[item] += 1;

или вообще лучше использовать defaultdict. Как раз для этих целей сделан (в стандартной библиотеке).