More on Rust
Jim
bitcirkel at yahoo.com
Thu Feb 10 23:39:15 PST 2011
Jacob Carlborg Wrote:
> On 2011-02-10 20:15, Walter Bright wrote:
> > Nick Sabalausky wrote:
> >> "bearophile" <bearophileHUGS at lycos.com> wrote in message
> >> news:iivb5n$na3$1 at 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.
More information about the Digitalmars-d
mailing list