Delphi vs C++ vs C#
, ну и Java немножко, где-то ближе к старшему байту номеров страниц
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.192] |
|
|
Правила раздела:
| Страницы: (495) « Первая ... 415 416 [417] 418 419 ... 494 495 ( Перейти к последнему сообщению ) |
Delphi vs C++ vs C#
, ну и Java немножко, где-то ближе к старшему байту номеров страниц
|
Сообщ.
#6241
,
|
|
|
|
Цитата KILLER @ И как же например возвращать результаты при разных входных параметрах функций и условий что внутри? Вот передали в функцию число 5 - попали в одну ветку вычислений, а если 10 - то уже совсем в другую, а если 0, то вообще сразу выйти и возвратить что то ? Не, я понимаю что можно, но сколько строчек это займет? Две, как минимум? Что? В чем проблема? ![]() ![]() int f (int x) { if (x == 5) { someShit(); } else if (x == 10) { someOtherShit(); } else if (x == 0) { someValue; } else { defaultShit(); } } |
|
Сообщ.
#6242
,
|
|
|
|
Цитата --Ins-- @ Хорошо Только комментировать все равно не проси, я от такого сам тупею Может у korvin-а и есть иммунитет и выдержка с подобным аргументированно спорить, но у меня в последнее время с ней напряженка Да ты прям целка-Будда(надеюсь поймешь о чем я, если нет, то ты и вправду отупел), даже гдето смешно становится, но всеравно это тебе минус в карму. Т.к. что такое хорошо, а что такое плохо - нормальный программер должен понимать. Ты видимо пишешь ВСЕГДА идеальный код. Даже видимо если он кому то костыльным кажется, для тебя он идеален, и показывают тебе судя по всему всегда идеальный код. Т.к. костыльный ты не видел как я понял, ибо ты от разбора чужого кода тупеешь(по твоим же словам). Ну да, делфисты не очень видимо любят командную разработку. Добавлено Цитата korvin @ Что? В чем проблема? Я вообще не понял что ты привел. Добавлено korvin, и смысл этой функции и зачем она возвращает int ? |
|
Сообщ.
#6243
,
|
|
|
|
Цитата KILLER @ Я вообще не понял что ты привел. Добавлено korvin, и смысл этой функции и зачем она возвращает int ? Это ответ на твой вопрос о том, как быть с ветвлениями в функции, которая просто возвращает результат вычисления последнего выражения тела функции. Без всяких return. Но на самом деле все-равно можно еще оставить return(как в Ruby) или сделать его макрасом(как в Nemerle). |
|
Сообщ.
#6244
,
|
|
|
|
Цитата D_KEY @ Это ответ на твой вопрос о том, как быть с ветвлениями в функции, которая просто возвращает результат вычисления последнего выражения тела функции. Без всяких return. Но на самом деле все-равно можно еще оставить return(как в Ruby) или сделать его макрасом(как в Nemerle). Так в том и дело, что я непойму как у него функция что то возвращает? Я не вижу не Result/ни return |
|
Сообщ.
#6245
,
|
|
|
|
Цитата KILLER @ Цитата D_KEY @ Это ответ на твой вопрос о том, как быть с ветвлениями в функции, которая просто возвращает результат вычисления последнего выражения тела функции. Без всяких return. Но на самом деле все-равно можно еще оставить return(как в Ruby) или сделать его макрасом(как в Nemerle). Так в том и дело, что я непойму как у него функция что то возвращает? Я не вижу не Result/ни return Так пример как раз на то, что можно без них обойтись. Функция возвращает результат своего выражения. В данном случае - if(который будет уже не инструкцией, а выражением, т.е. больше похожим на ?: ). В итоге функция вернет значение нужной ветки. Добавлено В общем если переводить на нормальный С++, то код аналогичен такому(не знаю даже как отформатировать, чтоб читалось нормально) : ![]() ![]() int f (int x) { return x == 5 ? someShit() : x == 10 ? someOtherShit() : x == 0 ? someValue : defaultShit(); } |
|
Сообщ.
#6246
,
|
|
|
|
Цитата korvin @ При чем тут это? Мы как раз сейчас про не-делфи и объявление переменных с именем Result. И много у тебя переменных с именем Result? Ее кстати вполне себе можно использовать для хранения результатов вызываемых функций: ![]() ![]() result = do_something(arg); if(result != E_OK) return result; |
|
Сообщ.
#6247
,
|
|
|
|
Цитата Мяут-Настоящий @ Ее кстати вполне себе можно использовать для хранения результатов вызываемых функций: У тебя плохой пример (ну, т.е. код - нормальный, а как пример - не показательный) - т.к. result это результат и вызываемой, и собственной функции, т.е. здесь нет искажения смысла идентификатора. А киллер все стремится исказить Добавлено Цитата KILLER @ Так в том и дело, что я непойму как у него функция что то возвращает? Я не вижу не Result/ни return Ты походу даже не понимаешь что ты комментируешь, а потом удивляешься что тебе дали странный для тебя ответ Ты просил как в случае ветвления будет выглядеть код, где результат - это значение последнего выражения без return/result? Тебе его предоставили любезно, а теперь ты спрашиваешь где то, чего в нем не должно быть |
|
Сообщ.
#6248
,
|
|
|
|
Цитата --Ins-- @ ы походу даже не понимаешь что ты комментируешь, а потом удивляешься что тебе дали странный для тебя ответ Ты просил как в случае ветвления будет выглядеть код, где результат - это значение последнего выражения без return/result? Тебе его предоставили любезно, а теперь ты спрашиваешь где то, чего в нем не должно быть Так в том примере я хз на каком языке написано, может так в лиспах из функции можно выйти, я ведь пытаюсь перевести все это на то что я понимаю. Вот D_KEY объяснил, я сейчас понял что корвин имел ввиду. А ты только умничать и можешь. |
|
Сообщ.
#6249
,
|
|
|
|
Цитата KILLER @ А ты только умничать и можешь. Лучше уж умничать чем тупить |
|
Сообщ.
#6250
,
|
|
|
|
Цитата Мяут-Настоящий @ Ее кстати вполне себе можно использовать для хранения результатов вызываемых функций: ![]() ![]() result = do_something(arg); if(result != E_OK) return result; Это неудачное имя, т.к. не отражает смысл переменной. И что в таком случае делать, если таких переменных несколько, называть их ResultN? А именно в твоем коде оно ничем не отличается от делфийского Result. Добавлено Цитата KILLER @ Так в том примере я хз на каком языке написано, может так в лиспах из функции можно выйти, я ведь пытаюсь перевести все это на то что я понимаю. Вот D_KEY объяснил, я сейчас понял что корвин имел ввиду. А ты только умничать и можешь. Во блин, я-то вначале хотел привести пример на хаскелле, но подумал, что тебе будет сложно его прочитать, поэтому решил дополнить его представлением в Сишном синтаксисе, а затем, что получается дублирование одного и того же и оставил только вариант в Сишном синтаксисе. Но раз ты не можешь абстрагироваться от языка, то впредь я будут приводить примеры кода только в языках, в которых существует обсуждаемый прием. |
|
Сообщ.
#6251
,
|
|
|
|
Цитата korvin @ Во блин, я-то вначале хотел привести пример на хаскелле, но подумал, что тебе будет сложно его прочитать, поэтому решил дополнить его представлением в Сишном синтаксисе, а затем, что получается дублирование одного и того же и оставил только вариант в Сишном синтаксисе. Но раз ты не можешь абстрагироваться от языка, то впредь я будут приводить примеры кода только в языках, в которых существует обсуждаемый прием. Так ты если пишешь в каком то синтаксисе языка, то пиши в этом стиле, а не городи кашу. У тебя синтаксис сишный, но функция ничего не возвращает, и где она возвращает результат - для меня осталось загадкой. Хорошо что D_KEY телепат умеет твои мысли читать. |
|
Сообщ.
#6252
,
|
|
|
|
Цитата KILLER @ Так ты если пишешь в каком то синтаксисе языка, то пиши в этом стиле, а не городи кашу. У тебя синтаксис сишный, но функция ничего не возвращает, и где она возвращает результат - для меня осталось загадкой. Хорошо что D_KEY телепат умеет твои мысли читать. Интересно, а как можно на чистом c/с++ написать пример, где результат якобы возвращается без использования return, если с/с++ этого не позволяют? Вопрос чисто риторический |
|
Сообщ.
#6253
,
|
|
|
|
Цитата KILLER @ Так ты если пишешь в каком то синтаксисе языка, то пиши в этом стиле, а не городи кашу. У тебя синтаксис сишный, но функция ничего не возвращает, и где она возвращает результат - для меня осталось загадкой. Хорошо что D_KEY телепат умеет твои мысли читать. О господи... Ты вообще различаешь синтаксис и семантику? Я могу и CL например прикрутить Си-подобный синтаксис, он после этого станет Сишкой? Нет. Мы обсуждали вполне конкретный прием: возврат значения функции без явного return. У тебя возникли какие-то проблемы с ветвлениями, я спросил: в чем проблема? |
|
Сообщ.
#6254
,
|
|
|
|
Цитата korvin @ О господи... Ты вообще различаешь синтаксис и семантику? Я могу и CL например прикрутить Си-подобный синтаксис, он после этого станет Сишкой? Нет. Мы обсуждали вполне конкретный прием: возврат значения функции без явного return. У тебя возникли какие-то проблемы с ветвлениями, я спросил: в чем проблема? Я тебе еще раз поясняю, что я вообще не понял твой пример. Во первых, ты просто вызвал 5 функций внутри 5-ти ифов и все. Что я должен из этого кода понять? Откуда мне знать что твои someValue/SomeShift - это возвращаемое значение функции? Где конкретно выход из функции осуществляется? Внутри эти if. Или по выходу из них уже из функции. Тогда куда у тебя результат пишется? У тебя нет ни Result/ ни return. Додумывать что ты там имел ввиду мне лень и нет никакого желания. Либо пиши понятно, либо не пиши вообще. Цитата --Ins-- @ Интересно, а как можно на чистом c/с++ написать пример, где результат якобы возвращается без использования return, если с/с++ этого не позволяют? Вопрос чисто риторический Ага, а у него в коде конкретно где ты заметил возвращение результата? Оно даже в Result не записывается. Написать можно псевдокодом, но понятно, в случае чего на крайняк закоментировать. |
|
Сообщ.
#6255
,
|
|
|
|
Цитата KILLER @ Что я должен из этого кода понять? Даже я понял, хоть с - это для меня птичий язык Цитата KILLER @ Где конкретно выход из функции осуществляется? Внутри эти if. Или по выходу из них уже из функции. Тогда куда у тебя результат пишется? У тебя нет ни Result/ ни return. Додумывать что ты там имел ввиду мне лень и нет никакого желания. Либо пиши понятно, либо не пиши вообще. О том, куда и где пишется результат - написал D_KEY, на что ты спросил а как в этом случае быть при ветвлении. Получил ответ и затупил окончательно Цитата KILLER @ Ага, а у него в коде конкретно где ты заметил возвращение результата? Мдааа |