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.