On Friday, 4 November 2016 at 13:56:57 UTC, Andrea Fontana wrote:
If you don't like indentation you can simply ignore it or you can use old goto :)

{
   int i = someFunc();
   if (i < 0) goto outer;
   // your code here
}
outer:

BTW there is a trick to avoid goto+label:

switch (true) {
default:
  int i = someFunc();
  if (i < 0) break;
  ...
}

If code after goto is long, the reader has to search for the label. With switch/break, the reader knows the current scope is just skipped, no need to interrupt reading of lines.

We could allow omitting the condition and default label:

switch {
  int i = someFunc();
  if (i < 0) break;
  ...
}

That would encourage the pattern to be used instead of the 'triangle if' pattern - the rationale for breakable blocks:
https://issues.dlang.org/show_bug.cgi?id=8622

Reply via email to