LINUX.ORG.RU

with. Что там неочевидного?

 


0

1

Взялся сейчас за оператор with, но не могу найти нормальной исчерпывающей инфы по нему. Постоянно наталкиваюсь на какие-то беглые поверхностные статейки, где утверждается, что он че-то там неочевидно себя ведет, бла-бла-бла, не рекомендуют. Но, при этом никакой конкретики, а примеры, которые приводяться, не кажутся мне неочевидными, а кажутся, скорей следствием непонимания авторами того, что они пишут и утверждают. Я ща взял, поигрался с ним в консоли, вроде нормально себя ведет, как ожидается. Может кто покажет неочевидные моменты? Хотелось бы разобраться.

Внимание! Вопросы производительности и оптимизации меня в данном случае не интересуют!

Спасибо.

Ответ на: комментарий от MyTrooName

Да в общем не особо. Я пока не сталкивался с серьезными проблемами. Это удобно, удобство компенсирует. Например, без неявного привидения нам пришлось бы писать

expr.toString()
//или 
String(expr)
//это все затрудняет и замедляет читаемость,
//а так мы пишем
""+expr
А в более сложных случаях, можно избежать целых портянок засчет этого. Но идеально было бы, если бы типов вообще не было, тогда и приводить бы ничего не пришлось.

anonimous
() автор топика
Ответ на: комментарий от anonimous

если бы типов вообще не было

ну, пиши на макроассемблере

MyTrooName ★★★★★
()
Ответ на: комментарий от anonimous
""+expr

работает и в языках со строгой типизацией (джава, питон). toString() применяется автоматом. в сипипишечке тоже не трудно сделать на перегрузках

Проблемы в js начинаются с «123»+«4 июня» итп

MyTrooName ★★★★★
()
Последнее исправление: MyTrooName (всего исправлений: 3)
Ответ на: комментарий от MyTrooName

начинаются с „123“+„4 июня“ итп

В чем проблема? Даже если 123+«4 июня» никаких проблем нет. А ты конкатенируешь строки и чему то удивляешься. У тебя там и привиденя то нет никакого. Это ваще п-ц.

anonimous
() автор топика
Ответ на: комментарий от MyTrooName

работает и в языках со строгой типизацией (джава, питон). toString() применяется автоматом. в сипипишечке тоже не трудно сделать на перегрузках

Проблема не в том, что можно сделать «„+expr, проблема в том, что в динамическом языке это потом может уйти в любую другую ф-ю. А в статическом - не сможет.

anonymous
()
Ответ на: комментарий от anonymous

Все верно, там это на уровне сахара просто, а тут на уровне семантики.

anonimous
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.