powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Возвращаемое значение
25 сообщений из 26, страница 1 из 2
Возвращаемое значение
    #36396861
Фотография dmitriyche
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Негде почитать по этому вопросу, но всё как бы интуитивно понятно, но....
В общем, если метод возвращает целочисленное значение, то почему в случае неудачи он должен возвращать некоторое отрицательное значение?
Просьба хотя бы пару ссылок.

Спасибо.
...
Рейтинг: 0 / 0
Возвращаемое значение
    #36396867
an0nym
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dmitriyche,

1. Метод никому ничего не должен.
2. Потому что если и при нормальном стечении обстоятельств и при ошибке он будет возвращать натуральные числа, то без костыля не узнать, чем является возвращаемое значение - кодом ошибки или результатом.
...
Рейтинг: 0 / 0
Возвращаемое значение
    #36396877
Mozok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dmitriycheВ общем, если метод возвращает целочисленное значение, то почему в случае неудачи он должен возвращать некоторое отрицательное значение?

Интересно, это откуда Вы такое требование взяли?
...
Рейтинг: 0 / 0
Возвращаемое значение
    #36396878
Фотография dmitriyche
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
an0nym,

Давайте рассмотрим этот метод
Понятно, что строка это массив и в ней не может быть элемента с отрицательным индексом
...
Рейтинг: 0 / 0
Возвращаемое значение
    #36396881
Mozok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dmitriyche
Понятно, что строка это массив и в ней не может быть элемента с отрицательным индексом
И?
...
Рейтинг: 0 / 0
Возвращаемое значение
    #36396883
Фотография dmitriyche
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот, к примеру, есть у вас метод или функция, который/ая должна добавлять запись в таблицу БД и возвращать сгенерированный автоинкрементальный id. Что вы будете возвращать в случае неудачной попытки добавить запись?
...
Рейтинг: 0 / 0
Возвращаемое значение
    #36396888
Фотография dmitriyche
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Перефразирую
В общем, если метод (в процессе выполнения которого может произойти сбой) возвращает целочисленное значение, то почему в случае неудачи он должен возвращать некоторое отрицательное значение?
...
Рейтинг: 0 / 0
Возвращаемое значение
    #36396889
an0nym
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dmitriyche,

вот именно. Представьте, что у вас строка
Код: plaintext
десятьтыщпятьсотмильёноввосемьсотмиллиардовстопицотсимволов
, вы ищите в ней первое вхождение буквы "с", вам возвращается 3 позиция (2, так как в компьютерах отсчет принято вести с нуля). Теперь представьте, что в той же строке вы ищете первое вхождение цифры "0" - что вам должно вернуться? 1? 10? 1000000000000000000000000000000? 0? А как вы отличите, что 1 - это не позиция, на которой находится буква "е"? Что 10 - не где находится буква "я"? Про единицу с 30 нулями отдельный разговор - вы такое число сможете в INT засунуть? Я - нет. Про 0 - аналогично 1 и 10. And so on.
...
Рейтинг: 0 / 0
Возвращаемое значение
    #36396891
an0nym
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dmitriycheВот, к примеру, есть у вас метод или функция, который/ая должна добавлять запись в таблицу БД и возвращать сгенерированный автоинкрементальный id. Что вы будете возвращать в случае неудачной попытки добавить запись?
throw new Exception?
...
Рейтинг: 0 / 0
Возвращаемое значение
    #36396896
Фотография dmitriyche
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
an0nym,

я не про то спрашивал, ваш ответ инвалидный
*имхо ставить не буду
...
Рейтинг: 0 / 0
Возвращаемое значение
    #36396898
Фотография dmitriyche
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
an0nymthrow new Exception?
представьте что ваш метод - это метод веб-сервиса и вы никак, просто никак, отловить этот эксепшн не можете
...
Рейтинг: 0 / 0
Возвращаемое значение
    #36396900
an0nym
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dmitriychean0nym,

я не про то спрашивал, ваш ответ инвалидный
*имхо ставить не буду
Скорее так: вы не можете нормально задать вопрос, ваш вопрос - инвалидный. :)
...
Рейтинг: 0 / 0
Возвращаемое значение
    #36396902
an0nym
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dmitriychean0nymthrow new Exception?
представьте что ваш метод - это метод веб-сервиса и вы никак, просто никак, отловить этот эксепшн не можете
Ну так читайте выше, почему ответ меньше нуля.
...
Рейтинг: 0 / 0
Возвращаемое значение
    #36396904
Фотография dmitriyche
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
an0nym,

an0nym
вот именно. Представьте, что у вас строка
Код: plaintext
десятьтыщпятьсотмильёноввосемьсотмиллиардовстопицотсимволов
... и много буков не по теме....
а свой вопрос я перефразировал пару постов выше
...
Рейтинг: 0 / 0
Возвращаемое значение
    #36396910
Mozok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
an0nym
throw new Exception?
+1.
an0nymСкорее так: вы не можете нормально задать вопрос, ваш вопрос - инвалидный. :)
+1 еще раз :). Нужно просто уметь отличать неудачи от удач. Вон в WinAPI Вы вообще ни про что не узнаете, пока не вызовете GetLastError и не посмотрите код ошибки (который, кстати, может быть любым целым числом).
...
Рейтинг: 0 / 0
Возвращаемое значение
    #36396915
Фотография dmitriyche
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
an0nymНу так читайте выше, почему ответ меньше нуля.
Ответ на мой вопрос по любому является паттерном, я в этом очень уверен, могу я услышать его название? дальше я у гугла спрошу.
спасибо
...
Рейтинг: 0 / 0
Возвращаемое значение
    #36396919
an0nym
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dmitriycheПерефразирую
В общем, если метод (в процессе выполнения которого может произойти сбой) возвращает целочисленное значение, то почему в случае неудачи он должен возвращать некоторое отрицательное значение?

Конкретно по этому определению:
если метод при нормальном завершении возвращает именно целочисленное значение, а не натуральное и/или ноль, то он не то что не должен возвращать некоторое отрицательное значение, ему нельзя возвращать отрицательное значение, так как в таком случае ошибку от нормального завершения не отличить.

В таком случае следует возвращать два значения (произошла ли ошибка и результат метода/код ошибки) так или иначе: через массив, через in/out аргумент, через простановку флага возвращаемого значения (например, 01000001b - без ошибок, вернул -1; 11000001b - произошла ошибка с кодом -1).

Если же речь идет о натуральных числах при нормальном завершении метода, то в постах выше описано, почему следует возвращать отрицательное значение.
...
Рейтинг: 0 / 0
Возвращаемое значение
    #36396921
an0nym
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
an0nymон не то что не должен возвращать некоторое *отрицательное значение*, ему нельзя возвращать отрицательное значение, так как в таком случае ошибку от нормального завершения не отличить.
*отрицательное значение в случае ошибки*
...
Рейтинг: 0 / 0
Возвращаемое значение
    #36396923
GrayStrannik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dmitriycheНегде почитать по этому вопросу, но всё как бы интуитивно понятно, но....
В общем, если метод возвращает целочисленное значение, то почему в случае неудачи он должен возвращать некоторое отрицательное значение?Потому что нужно вернуть какое-то значение, которое заведомо нереализуемо в случае успеха и которое в коде легко проверить. Отдать дробное значение ранее было проблематично, да и проверять его замучаешься. Поэтому изобрели два способа сообщения функции об ошибке:

1. если функция возвращает целочисленное положительное значение, то при ошибке -1.

2. если функция возвращает указатель, то возвращается указатель на начало адресуемой памяти - традиционно там хранилась операционка и указателя на начало памяти существовать в программе не должно (кроме совсем спец. случаев).

Потом это соглашение распространилось повсеместно и стало удобным отраслевым стандартом.

Что Вам в нём не нравится?
...
Рейтинг: 0 / 0
Возвращаемое значение
    #36396930
Фотография dmitriyche
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
an0nym,

Как я уже говорил выше, есть метод который возвращает сгенерированное автоинкрементальное значение ключа вставленной записи.
Т.е. работа происходит с целыми положитьными числами.
Мне интуитивно понятно, что в случае неудачного добавления записи или сбоя, как ошибку необходимо вернуть некоторое отрицательное значение.
Могу я услышать названеи этого паттерна, если таковой имеется?

Mozok,

куда вы плюсуете, я уже отписал причину невозможности отлавливания эксепшена?
ВинАПИ оставте при себе, язык реализации не важен
...
Рейтинг: 0 / 0
Возвращаемое значение
    #36396935
Фотография dmitriyche
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GrayStrannik,

Благодарю.
...
Рейтинг: 0 / 0
Возвращаемое значение
    #36397041
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dmitriycheМне интуитивно понятно, что в случае неудачного добавления записи или сбоя, как ошибку необходимо вернуть некоторое отрицательное значение.Никакой интуиции тут нет. Это просто традиция въевшаяся в кровь.

dmitriycheМогу я услышать названеи этого паттерна, если таковой имеется?Нет, низкие языки (из которых и пошла эта традция) не заморчиваются никакими "паттернами". И вообще подгонка всего под паттерны это дурная идея.
...
Рейтинг: 0 / 0
Возвращаемое значение
    #36397315
Фотография dmitriyche
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owl...И вообще подгонка всего под паттерны это дурная идея.
Если без паттернов, то это как-то не по феншую выходит
*шутко
...
Рейтинг: 0 / 0
Возвращаемое значение
    #36397334
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dmitriycheНегде почитать по этому вопросу, но всё как бы интуитивно понятно, но....
В общем, если метод возвращает целочисленное значение, то почему в случае неудачи он должен возвращать некоторое отрицательное значение?
Просьба хотя бы пару ссылок.
Ссылок не дам потому что лень. Скажу то, что помню навскидку. Существует такая старая программистская традиция. Функции ядра возвращают целочисленный результат. Смысловая нагрузка - полностью на откуп создателю этой функции. Например fread(...) - возвращает количество прочитанных из файла элементов. Другие функции могут возвращать перечислимый набор констант (коды ошибок). Почему возвращается целове число? Ну... это удобно с точки зрения стека и экономно. Отрицательные числа - просто прихоть. Очевидно так было удобно делать тесты на корректность завершения работы.
...
Рейтинг: 0 / 0
Возвращаемое значение
    #36397359
Фотография dmitriyche
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

спасибо:)
...
Рейтинг: 0 / 0
25 сообщений из 26, страница 1 из 2
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Возвращаемое значение
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]