On 2011-02-11 08:39, Jim wrote:
Jacob Carlborg Wrote:
On 2011-02-10 20:15, Walter Bright wrote:
Nick Sabalausky wrote:
"bearophile"<bearophileh...@lycos.com> wrote in message
news:iivb5n$na3$1...@digitalmars.com...
auto x;
if (localtime().hours>= 8) {
x = "awake!"
} else {
x = "asleep, go away."
}
log "I'm " + x;
That would be really nice to have in D.
auto x = (localtime().hours>= 8) ? "awake!" : "asleep, go away.";
For this simple if statement it works but as soon you have a few lines
in the if statement it will become really ugly. But one could wrap the
if statement in a function instead. In other languages where statements
really are expressions this works:
auto x = if (localtime().hours>= 8)
"awake!";
else
"asleep, go away.";
log "I'm " + x;
Other languages may have bloated syntaxes, with no particular benefit.
auto x = localtime().hours>= 8 ?
"awake!"
:
"asleep, go away.";
log( "I'm " ~ x );
If the expressions are complex I put them in functions.
1) It hides and isolates details, which allows you to focus on the more
abstract aspects.
2) It gives the expression a name and facilitates reuse.
And that was the first thing I said one could do.
--
/Jacob Carlborg