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