On Monday, 28 July 2025 at 12:25:39 UTC, kinke wrote:
then the rewrite becomes a bit more complex:
```d
int __result; // magic variable inserted by the compiler, for
the main() return value
const __opApplyResult = ints.opApply((ref int item) {
if (item == 0) {
__result = item; // set return value for parent function
return 2; // return => abort the loop and exit from parent
function
}
if (item == 1)
return 0; // continue => abort this iteration
if (item == 2)
return 1; // break => abort this and all future iterations
printf("%d\n", item);
return 0; // continue with next iteration
});
switch (__opApplyResult) {
default:
break;
case 2:
return __result;
}
return __result = 0;
```
Interesting, thanks. How does it work if there's a `goto` in the
foreach body with a label outside the foreach?