Проблема с примером книги - PullRequest
       2

Проблема с примером книги

5 голосов
/ 15 сентября 2010

Это только у меня, или есть проблема со страницей 68 "The D Programming Language"?На этой странице автор обсуждает синтаксис D операторов if-else и то, как они вкладываются.Сначала он представляет этот пример:

if(a == b)
    if(b == c)
        writeln("all are equal!");
    else
        writeln("a is different from b. Or is that so?");

Затем он указывает, что остальное будет связываться со вторым if.Затем он говорит, что для того, чтобы остальное связывалось с первым, если нужно использовать фигурные скобки следующим образом:

if(a == b) {
    if(b == c)
        writeln("all are equal!");
    else
        writeln("a is different from b. Or is that so?");
}

Я полностью упускаю точку или вам придется сделать это:

if(a == b) {
    if(b == c)
        writeln("all are equal!");
}
else
    writeln("a is different from b. Or is that so?");

Ответы [ 2 ]

5 голосов
/ 15 сентября 2010

Это действительно ошибка. Ошибки для TDPL можно найти здесь: http://www.erdani.com/tdpl/errata/index.php?title=Main_Page

2 голосов
/ 15 сентября 2010

Вы правы. Пример кода неверен. Но текст в книге правильный: «Если вы вместо этого хотите связать else с первым if,« зафиксируйте »второй if с помощью пары скобок». Но код не показывает «буферизацию» только секунды, если.

...