Delphi vs C++ vs C#
, ну и Java немножко, где-то ближе к старшему байту номеров страниц
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.192] |
|
|
Правила раздела:
| Страницы: (495) « Первая ... 108 109 [110] 111 112 ... 494 495 ( Перейти к последнему сообщению ) |
Delphi vs C++ vs C#
, ну и Java немножко, где-то ближе к старшему байту номеров страниц
|
Сообщ.
#1636
,
|
|
|
|
Цитата korvin @ там нет неявных блоков. синтаксис примерно такой: ![]() ![]() if-statement ::= "if" condition then-expr ["else" else-expr] ";" condition ::= expression then-expr ::= expression else-expr ::= expression expression ::= single-expr | "{" {single-expr} "}" все логично Где там? В С++ - там есть неявный блок. Тут это более очевидно: ![]() ![]() if (int x = ...) cout << x << ...; x - существует только внутри блока if. |
|
Сообщ.
#1637
,
|
|
|
|
Цитата D_KEY @ Где там? В С++ - там есть неявный блок. Тут это более очевидно: ![]() ![]() if (int x = ...) cout << x << ...; x - существует только внутри блока if. какого блока? напиши с явным блоком Добавлено Цитата D_KEY @ Цитата кстати в делфи как раз недавно появилась поддержка svn, кто-то из местных делфистов ее юзает? Да уж, передовой инструмент разработки и ультра современная IDEда, сам смеялся |
|
Сообщ.
#1638
,
|
|
|
|
Цитата korvin @ Цитата D_KEY @ Где там? В С++ - там есть неявный блок. Тут это более очевидно: ![]() ![]() if (int x = ...) cout << x << ...; x - существует только внутри блока if. какого блока? напиши с явным блоком ![]() ![]() if (int x = ...) { cout << x << ...; } Это тождественные варианты. Добавлено Цитата if the substatement in a selection-statement is a single state- ment and not a compound-statement, it is as if it was rewritten to be a compound-statement containing the original substatement. [Example: ![]() ![]() if (x) int i; can be equivalently rewritten as ![]() ![]() if (x) { int i; } Thus after the if statement, i is no longer in scope. ] |
|
Сообщ.
#1639
,
|
|
|
|
Цитата D_KEY @ ![]() ![]() if (int x = ...) { cout << x << ...; } Это тождественные варианты. эм... так объявление x находится вне блок, но при этом никакого блока, обрамляющего объявление x нет Цитата D_KEY @ Цитата if the substatement in a selection-statement is a single state- ment and not a compound-statement, it is as if it was rewritten to be a compound-statement containing the original substatement. [Example: ![]() ![]() if (x) int i; can be equivalently rewritten as ![]() ![]() if (x) { int i; } Thus after the if statement, i is no longer in scope. ] ну дык в обоих случаях then-expr ::= expression только в первом в качестве expression выступает single-expr, во втором -- block-expr |
|
Сообщ.
#1640
,
|
|
|
|
Цитата korvin @ только в первом в качестве expression выступает single-expr, во втором -- block-expr Причем тут expression'ы? В общем, это блок Со всякими вытекающими отсюда последствиями в виде вызовов деструкторов и т.п. вещей. |
|
Сообщ.
#1641
,
|
|
|
|
Цитата D_KEY @ Цитата korvin @ только в первом в качестве expression выступает single-expr, во втором -- block-expr Причем тут expression'ы? В общем, это блок Со всякими вытекающими отсюда последствиями в виде вызовов деструкторов и т.п. вещей.дык где блок--то? блок идет после объявления x, а где блок, обрамляющий объявление x, дабы оно не было видно за пределами if? |
|
Сообщ.
#1642
,
|
|
|
|
Цитата korvin @ блок идет после объявления x, а где блок, обрамляющий объявление x, дабы оно не было видно за пределами if? Нигде. Но x не будет видно за пределами блока(или отдельной инструкции) if. Добавлено В общем я за то, что бы {} были обязательными, раз уж там не выражения, а фактически блок инструкций. Добавлено По крайней мере сейчас мне кажется, что так было бы лучше. |
|
Сообщ.
#1643
,
|
|
|
|
Они как неявные касты - кода меньше, но чреват ошибками Тем не менее, не допускал их уже давно, потому как даже в фаре редактор нормально за отступами следит, и я логику кода не теряю. |
|
Сообщ.
#1644
,
|
|
|
|
Цитата MyNameIsIgor @ Они как неявные касты - кода меньше, но чреват ошибками Тем не менее, не допускал их уже давно, потому как даже в фаре редактор нормально за отступами следит, и я логику кода не теряю.Да я вроде тоже логику не теряю, но читается все-таки хуже. Даже с нормальным форматированием. ИМХО |
|
Сообщ.
#1645
,
|
|
|
|
Цитата D_KEY @ Да я вроде тоже логику не теряю, но читается все-таки хуже. Даже с нормальным форматированием. ИМХО Да брось, нормально оно читается. Не надо просто писать длиннющие вложенные друг в друга if - else if. |
|
Сообщ.
#1646
,
|
|
|
|
Цитата MyNameIsIgor @ Цитата D_KEY @ Да я вроде тоже логику не теряю, но читается все-таки хуже. Даже с нормальным форматированием. ИМХО Да брось, нормально оно читается. Не надо просто писать длиннющие вложенные друг в друга if - else if. Я не пишу Ладно, будем считать все это моим личным заскоком. |
|
Сообщ.
#1647
,
|
|
|
|
Цитата D_KEY @ Нигде. Но x не будет видно за пределами блока(или отдельной инструкции) if. В общем я за то, что бы {} были обязательными, раз уж там не выражения, а фактически блок инструкций. По крайней мере сейчас мне кажется, что так было бы лучше. мда... вот у вас заморочки, то ли дело лисп или хаскелл... |
|
Сообщ.
#1648
,
|
|
|
|
Цитата korvin @ мда... вот у вас заморочки, то ли дело лисп или хаскелл... Как там Flex как-то сказал... нечто вроде "мучительный выбор: применить ли мне здесь монаду или просто замкнуть накоротко?" |
|
Сообщ.
#1649
,
|
|
|
|
Цитата korvin @ Цитата D_KEY @ Нигде. Но x не будет видно за пределами блока(или отдельной инструкции) if. В общем я за то, что бы {} были обязательными, раз уж там не выражения, а фактически блок инструкций. По крайней мере сейчас мне кажется, что так было бы лучше. мда... вот у вас заморочки, то ли дело лисп или хаскелл... хаскелл все-таки мне не нравится. А вот на счет лиспа согласен. Кстати, пытаюсь найти время на clojure. Пока дальше тестовых примеров не доходит Добавлено Цитата MyNameIsIgor @ Цитата korvin @ мда... вот у вас заморочки, то ли дело лисп или хаскелл... Как там Flex как-то сказал... нечто вроде "мучительный выбор: применить ли мне здесь монаду или просто замкнуть накоротко?" ![]() |
|
Сообщ.
#1650
,
|
|
|
|
Цитата MyNameIsIgor @ Как там Flex как-то сказал... нечто вроде "мучительный выбор: применить ли мне здесь монаду или просто замкнуть накоротко?" ![]() эээ... монада и замыкание -- ортогональные сущности, не взаимозаменяемые, так что вне контекста фраза Флекса бессмысленна |