JS и его "недостатки"
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.123] |
|
|
Правила раздела:
| Страницы: (66) « Первая ... 27 28 [29] 30 31 ... 65 66 ( Перейти к последнему сообщению ) |
JS и его "недостатки"
|
Сообщ.
#421
,
|
|
|
|
Да это общая беда эксепшенов где бы они ни были. В pl/sql зачастую можно увидеть что-то типа ![]() ![]() when OTHERS then null; То есть при всех остальных эксепшенах делать null, т.е. ничего Заглушили и фиг с ней |
|
Сообщ.
#422
,
|
|
|
|
Цитата Астарот @ Ну людям в принципе свойственно отрицать то, чего они не понимают Хрен бы с этим - плохо то, что раздаются вопли о том, что "иначе не каноничЪно и богомерзЪко", при этом в адрес реально удобных фишек. |
|
Сообщ.
#423
,
|
|
|
|
Мявут, а мявут, ты уже скажи чем на практике плохо отбрасывание лишних аргументов, и как боротся за обратную совместимость?
Только ты по делу говори, а не общими словами Сможешь? |
|
Сообщ.
#424
,
|
|
|
|
Цитата fatalist @ Ну людям в принципе свойственно отрицать то, чего они не понимают Ну, вот я и вижу, что сриптеры отрицают всё, кроме мерзости... |
|
Сообщ.
#425
,
|
|
|
|
Цитата Астарот @ ну примерно понял То есть при всех остальных эксепшенах делать null, т.е. ничего Заглушили и фиг с ней ![]() |
|
Сообщ.
#426
,
|
|
|
|
Я из тех, кто считает Java нормальным языком. А JS... ну ты понял |
|
Сообщ.
#427
,
|
|
|
|
Цитата Мяут-Настоящий @ Я из тех, кто считает Java нормальным языком. А JS... ну ты понял ![]() Мне, мне ответишь? Цитата Астарот @ Мявут, а мявут, ты уже скажи чем на практике плохо отбрасывание лишних аргументов, и как боротся за обратную совместимость? Только ты по делу говори, а не общими словами Сможешь? |
|
Сообщ.
#428
,
|
|
|
|
Цитата Астарот @ ВНЕЗАПНО ты опять не осилил возможность сделать в js так же без всяких проблем и в том виде в котором тебе удобно. А зачем делать подобные рутинные и тривиальные вещи руками? Добавлено Разница лишь в том, что я явно укажу, что принимаю любое количество аргументов в контейнер с именем arguments. |
|
Сообщ.
#429
,
|
|
|
|
Цитата D_KEY @ А зачем делать подобные рутинные и тривиальные вещи руками? Кто тебя заставляет их делать? У тебя есть такая возможность, нужно - делай, не нужно - не делай. Это называется гибкость, если что. Повторю вопрос - как мне при колотом на части функционале сделать функцию срабатывающую и с параметрами и без? Добавлено Цитата D_KEY @ Разница лишь в том, что я явно укажу, что принимаю любое количество аргументов в контейнер с именем arguments. Ты все еще не объяснил основного - чем тебе мешает не явное принимание любого количества параметров в специальное хранилище "до востребования"? |
|
Сообщ.
#430
,
|
|
|
|
Цитата Астарот @ Это же факт. Могу продемонстрировать на многих языках, но ты ведь не хочешь... Вот псевдокод: ![]() ![]() function f(a, b): return a + b f(1, 2) # ok -> 3 f("aaa", "bbb") # ok -> "aaabbb" f(1) # error f() # error f(1,2,3) # error Добавлено Цитата Астарот @ Повторю вопрос - как мне при колотом на части функционале сделать функцию срабатывающую и с параметрами и без? Функция с переменным числом аргументов сработает и с параметрами и без. Цитата чем тебе мешает не явное принимание любого количества параметров в специальное хранилище "до востребования"? Тем, что я не просил этого. Тем, что я не вижу этого и оно при этом не очевидно. Тем, что я не могу декларативно указать, что хочу именно такие-то параметры. |
|
Сообщ.
#431
,
|
|
|
|
Цитата D_KEY @ Это же факт. Могу продемонстрировать на многих языках, но ты ведь не хочешь... Ты не внимателен. Я писал: Цитата это как-то гарантирует тебе вызов f как f(1,2), а не f(1,2,3) или f(1) или вообще f()? Ты мне показываешь, что в неправильных случаях тебе гарантированна ошибка, а вовсе не корректный вызов - магии-то не бывает Так что разница исключительно в том, что у тебя такое поведение расценивается как ошибка, а у меня нет. И ты почему-то считаешь, что мой вариант не верен, хотя пока не показал мне в каких случаях меня это должно теребить. |
|
Сообщ.
#432
,
|
|
|
|
Не угодал И забудьте С++, он тут вообще ни при чем. Добавлено Цитата Астарот @ Ты мне показываешь, что в неправильных случаях тебе гарантированна ошибка, а вовсе не корректный вызов - магии-то не бывает ![]() Да, как ни странно, ошибочный код в моем случае будет означать ошибку. Цитата Так что разница исключительно в том, что у тебя такое поведение расценивается как ошибка, а у меня нет. И ты почему-то считаешь, что мой вариант не верен, хотя пока не показал мне в каких случаях меня это должно теребить. Зачем ошибочному коду какое-то поведение? Покажи, пожалуйста, полезную функцию, которая бы декларировала, что принимает сколько-то аргументов(например function(a,b)), но при этом работала бы еще с несколькими. |
|
Сообщ.
#433
,
|
|
|
|
Цитата D_KEY @ Функция с переменным числом аргументов сработает и с параметрами и без. Круть! То есть полный аналог того, что видим в js? ![]() Цитата D_KEY @ Тем, что я не просил этого При программировании ты вообще много чего не просишь, а оно делается Мешает чем? Фактом наличия?Цитата D_KEY @ Тем, что я не вижу этого и оно при этом не очевидно. Что значит "не видишь"? Бери arguments и смотри - это часть языка. Цитата D_KEY @ Тем, что я не могу декларативно указать, что хочу именно такие-то параметры. Что значит не можешь? ![]() ![]() function(a, b) { if(!a || !b) { ...ашыпка } else { ...все что душе угодно } } Что, теперь if будет костью в горле? Добавлено Цитата D_KEY @ Да, как ни странно, ошибочный код в моем случае будет означать ошибку. Читая тебя я делаю неутешительный вывод, что у тебя все перевернуто и код ты считаешь ошибочным потому что он возвращает ошибку, хотя должно бы быть наоборот - ошибка, если код ошибочен. Цитата D_KEY @ Зачем ошибочному коду какое-то поведение? Кто сказал что он ошибочен? На основании чего ты сделал такой вывод? Ну, что ошибочного в коде, если вызывается a(1) вместо a() и при этом ненужный параметр отбрасывается и ни на что больше не влияет? Сам факт?Цитата D_KEY @ Покажи, пожалуйста, полезную функцию, которая бы декларировала, что принимает сколько-то аргументов(например function(a,b)), но при этом работала бы еще с несколькими. Чиф-чиво? Ты опять хочешь чего-то странного - уж не запутался ли ты как в прошлый раз, а? |
|
Сообщ.
#434
,
|
|
|
|
Цитата Астарот @ Цитата D_KEY @ Функция с переменным числом аргументов сработает и с параметрами и без. Круть! То есть полный аналог того, что видим в js? ![]() Ты только сейчас понял? Цитата Цитата D_KEY @ Тем, что я не просил этого При программировании ты вообще много чего не просишь, а оно делается А подробнее? Цитата Что значит "не видишь"? Бери arguments и смотри - это часть языка. Я не вижу никакой arguments Цитата Цитата D_KEY @ Тем, что я не могу декларативно указать, что хочу именно такие-то параметры. Что значит не можешь? ![]() ![]() function(a, b) { if(!a || !b) { ...ашыпка } else { ...все что душе угодно } } Что, теперь if будет костью в горле? ![]() Это не декларативно. И зачем мне это писать, если я итак указал, что хочу принять два аргумента? Добавлено Цитата Астарот @ ошибка, если код ошибочен. Совершенно верно. Вызов функции с аргументами, которые она не просила - ошибка. Цитата Ну, что ошибочного в коде, если вызывается a(1) вместо a()? Сам факт? Если a хочет, чтобы ее так вызывали, то ничего ошибочного. Если не хочет, то ошибка. Цитата Ты опять хочешь чего-то странного - уж не запутался ли ты как в прошлый раз, а? Может быть. Я хочу увидеть пользу от такого подхода к вызову функций. |
|
Сообщ.
#435
,
|
|
|
|
Цитата D_KEY @ Ты только сейчас понял? Ага, только сейчас я понял что ты говоришь фактически "у нас есть ОГО-ГО какая удобная штука, а у вас она точно такая же, но уже плохая" ![]() Цитата D_KEY @ А подробнее? Что подробнее? Ты объявил переменную - тебе, к примеру, выделили память. Ты просил выделять память? Или ты вызвал функцию - тебе запомнили адрес возврата. А ты не просил. Или ты вызвал функцию, а тебе дали возможность перебирать ее параметры даже если ты их не разложил по переменным. Предлагаю за все три случая жечь на костре, ага ![]() Цитата D_KEY @ Я не вижу никакой arguments Да? А что ты видишь? if видишь? Тоже часть языка, аднака, по идее либо и то и другое должен "видеть", либо ни то ни другое. Цитата D_KEY @ Это не декларативно. А. Вон оно что. Осталось выяснить как же "декларативно", и тут же все станет ясно ![]() Цитата D_KEY @ И зачем мне это писать, если я итак указал, что хочу принять два аргумента? Указал два аргумента - принял два. А в if'е ты проверяешь их на существование/тип/значение/что угодно. Любая логика на твой вкус. Добавлено Цитата D_KEY @ Совершенно верно. Вызов функции с аргументами, которые она не просила - ошибка. Это ты сейчас постановил - бездоказательно. Я точно так же говорю - ошибки нет до тех пор, пока реализация функции способна работать, и пофиг как ее вызвали. Цитата D_KEY @ Если a хочет, чтобы ее так вызывали, то ничего ошибочного. Если не хочет, то ошибка. А что делать если ей ПОФИГ как ее вызывают? Цитата D_KEY @ Может быть. Я хочу увидеть пользу от такого подхода к вызову функций. Я уже устал одно и тоже показывать. Давай уже ты покажешь вред от такого подхода, наконец? |