3 ms·
|capture| hides an inconsistency that bugs me – everywhere else, assignment to a variable flows leftwards. |capture| is an unnatural rightwards assignment. in
by ulbu 1mo ago
|capture| hides an inconsistency that bugs me – everywhere else, assignment to a variable flows leftwards. |capture| is an unnatural rightwards assignment.
in general, I like zig syntax, but i find that it had very little regard to how the eye moves on the page. it’s jarring at times.
- simjnd 1mo agoBut the capture is conditional so it makes sense. if (evaluation) result = evaluation if (evaluation) |result| Although assignments as expressions in C are convenient, I don't think they make a ton of sense and find Zig's capture easier to read (easier to immediately see what's being evaluated)
- ulbu 1mo agoif |result| (evaluation)
- simjnd 1mo agoI think you could argue for it both ways. Then you could claim ternaries are inconsistent too, shouldn't it be: resultA : resultB ? (evaluation) if we always put result first? I think the most important piece of if statements and ternaries is the condition being evaluated and it's worth putting that first?
- ulbu 1mo agobut zig has no ternaries, so it does not apply to a discussion about zig’s syntax. and ternary is a branch with no variable introduction, so it doesn’t apply again. (it’s basically a weak switch expression, and the value moves leftwards towards its invocation.)