Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #19303

Re: Assigning void

From Martin Gregorie <martin@address-in-sig.invalid>
Newsgroups comp.lang.java.programmer
Subject Re: Assigning void
Date 2012-10-13 20:28 +0000
Organization UK Free Software Network
Message-ID <k5cit5$2ua$1@localhost.localdomain> (permalink)
References (2 earlier) <k5c6vs$p9v$1@speranza.aioe.org> <k5cbcn$9dl$1@dont-email.me> <k5cd80$k8p$1@dont-email.me> <mn.6aec7dcaffbb07c0.70216@a.com> <k5cg71$6j7$1@dont-email.me>

Show all headers | View raw


On Sat, 13 Oct 2012 12:42:23 -0700, markspace wrote:

> On 10/13/2012 12:28 PM, Wojtek wrote:
> 
>> So questioning a design decision and trying to understand its rational
>> is trolling? Really?
> 
> 
> Yup, because there's no way anyone on this list could possibly answer
> that question.  You might try asking some of the language conferences or
> at JavaOne.  They might be able to tell you, or at least give you a
> rational.
> 
> All I can personally say, and I'm pretty sure all anyone here can say,
> is "Java is easy to read" is a goal, and allowing inline conditional is
> seen as detrimental to that goal.  Maybe.

There's a big difference:

- a conditional expression can be assigned to a boolean variable or
  consumed by an "if (condition) ..." statement

- but "( cond ? expr : expr)" is a triadic operator that demands a
  conditional expression as its first operand and returns a result. 
  Since Java syntax requires that an expression's result must be
  consumed and not discarded, it follows that the triadic operator
  ( cond ? expr : expr) *MUST* (a) have all three operands supplied 
  and (b) can only appear on the right hand side of an assignment
  statement or somewhere that will consume its result.  For instance, 
  this somewhat contrived example compiles and runs:

public class Triadic
{
   public static void main(String[] args)
   {
      StringBuilder sb = new StringBuilder();;

      if (args.length > 0)
         for (int i = 0; i < ( args[0].equals("four") ? 4 : 10); i++)
            sb.append("*");

      m(args.length > 0 ? sb.toString() : "Args, what args?");
   }

   public static void m(String s)
   {
      System.out.println(s);
      System.exit(0);
   } 
}

  showing that the triadic doesn't *have* to be the rhs of an assignment,
  though it usually will be used that way, as long as its result will be
  used and not discarded.

-- 
martin@   | Martin Gregorie
gregorie. | Essex, UK
org       |

Back to comp.lang.java.programmer | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Assigning void Wojtek <nowhere@a.com> - 2012-10-12 22:54 -0700
  Re: Assigning void Lew <lewbloch@gmail.com> - 2012-10-12 23:27 -0700
    Re: Assigning void Wojtek <nowhere@a.com> - 2012-10-13 12:35 -0700
  Re: Assigning void Eric Sosman <esosman@comcast-dot-net.invalid> - 2012-10-13 09:26 -0400
  Re: Assigning void Donkey Hottie <donkey@fredriksson.dy.fi> - 2012-10-13 17:06 +0300
    Re: Assigning void Jeff Higgins <jeff@invalid.invalid> - 2012-10-13 10:34 -0400
    Re: Assigning void Wanja Gayk <brixomatic@yahoo.com> - 2012-10-13 22:33 +0200
      Re: Assigning void Jeff Higgins <jeff@invalid.invalid> - 2012-10-13 17:34 -0400
      Re: Assigning void Eric Sosman <esosman@comcast-dot-net.invalid> - 2012-10-13 17:45 -0400
        Re: Assigning void Eric Sosman <esosman@comcast-dot-net.invalid> - 2012-10-13 21:35 -0400
        Re: Assigning void Wanja Gayk <brixomatic@yahoo.com> - 2012-10-16 00:16 +0200
  Re: Assigning void Jeff Higgins <jeff@invalid.invalid> - 2012-10-13 11:59 -0400
    Re: Assigning void glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2012-10-13 17:05 +0000
      Re: Assigning void Jeff Higgins <jeff@invalid.invalid> - 2012-10-13 14:26 -0400
        Re: Assigning void markspace <-@.> - 2012-10-13 11:51 -0700
          Re: Assigning void Jeff Higgins <jeff@invalid.invalid> - 2012-10-13 15:08 -0400
          Re: Assigning void Wojtek <nowhere@a.com> - 2012-10-13 12:28 -0700
            Re: Assigning void markspace <-@.> - 2012-10-13 12:42 -0700
              Re: Assigning void Lew <lewbloch@gmail.com> - 2012-10-13 12:54 -0700
                OT - Trolling Wojtek <nowhere@a.com> - 2012-10-13 14:16 -0700
                Re: OT - Trolling Jeff Higgins <jeff@invalid.invalid> - 2012-10-13 18:09 -0400
                Re: OT - Trolling Gene Wirchenko <genew@ocis.net> - 2012-10-14 18:47 -0700
              Re: Assigning void Martin Gregorie <martin@address-in-sig.invalid> - 2012-10-13 20:28 +0000
              Re: Assigning void Wojtek <nowhere@a.com> - 2012-10-13 13:31 -0700
                Re: Assigning void Joerg Meier <joergmmeier@arcor.de> - 2012-10-20 18:00 +0200
                Re: Assigning void Peter Duniho <NpOeStPeAdM@NnOwSlPiAnMk.com> - 2012-10-20 09:56 -0700
                Re: Assigning void "Peter J. Holzer" <hjp-usenet2@hjp.at> - 2012-10-21 13:24 +0200
                Re: Assigning void Peter Duniho <NpOeStPeAdM@NnOwSlPiAnMk.com> - 2012-10-21 10:23 -0700
                Re: Assigning void "Peter J. Holzer" <hjp-usenet2@hjp.at> - 2012-10-22 00:13 +0200
                Re: Assigning void Peter Duniho <NpOeStPeAdM@NnOwSlPiAnMk.com> - 2012-10-21 16:25 -0700
                Re: Assigning void "Peter J. Holzer" <hjp-usenet2@hjp.at> - 2012-10-22 08:43 +0200
                Re: Assigning void "Peter J. Holzer" <hjp-usenet2@hjp.at> - 2012-10-22 10:18 +0200
                Re: Assigning void Peter Duniho <NpOeStPeAdM@NnOwSlPiAnMk.com> - 2012-10-22 08:14 -0700
                Re: Assigning void glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2012-10-21 19:45 +0000
                Re: Assigning void "Peter J. Holzer" <hjp-usenet2@hjp.at> - 2012-10-22 00:14 +0200
            Re: Assigning void Lew <lewbloch@gmail.com> - 2012-10-13 12:44 -0700
              Re: Assigning void Jukka Lahtinen <jtfjdehf@hotmail.com.invalid> - 2012-10-15 14:38 +0300
                Re: Assigning void Lew <lewbloch@gmail.com> - 2012-10-15 09:11 -0700
        Re: Assigning void Jeff Higgins <jeff@invalid.invalid> - 2012-10-13 15:03 -0400
          Re: Assigning void glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2012-10-13 20:21 +0000
    Re: Assigning void Lew <lewbloch@gmail.com> - 2012-10-13 12:38 -0700
      Re: Assigning void markspace <-@.> - 2012-10-13 12:49 -0700
        Re: Assigning void Lew <lewbloch@gmail.com> - 2012-10-13 13:03 -0700
          Re: Assigning void Robert Klemme <shortcutter@googlemail.com> - 2012-10-14 14:09 +0200
            Re: Assigning void Lew <lewbloch@gmail.com> - 2012-10-14 11:31 -0700
      Re: Assigning void Jeff Higgins <jeff@invalid.invalid> - 2012-10-13 19:55 -0400
        Re: Assigning void Jeff Higgins <jeff@invalid.invalid> - 2012-10-13 20:25 -0400
          Re: Assigning void Jeff Higgins <jeff@invalid.invalid> - 2012-10-13 21:01 -0400
            Re: Assigning void Gene Wirchenko <genew@ocis.net> - 2012-10-14 18:42 -0700
  Re: Assigning void Roedy Green <see_website@mindprod.com.invalid> - 2012-10-14 00:51 -0700
  Re: Assigning void Jeff Higgins <jeff@invalid.invalid> - 2012-10-14 10:40 -0400
  Re: Assigning void Sven Köhler <remove-sven.koehler@gmail.com> - 2012-10-21 01:24 +0200
    Re: Assigning void Wojtek <nowhere@a.com> - 2012-10-21 14:52 -0700
      Re: Assigning void Eric Sosman <esosman@comcast-dot-net.invalid> - 2012-10-21 20:13 -0400
        Re: Assigning void Wojtek <nowhere@a.com> - 2012-10-21 20:20 -0700
          Re: Assigning void Sven Köhler <remove-sven.koehler@gmail.com> - 2012-10-22 11:12 +0200
        Re: Assigning void Wanja Gayk <brixomatic@yahoo.com> - 2012-10-24 22:03 +0200
          Re: Assigning void Eric Sosman <esosman@comcast-dot-net.invalid> - 2012-10-24 17:47 -0400
            Re: Assigning void Wanja Gayk <brixomatic@yahoo.com> - 2012-10-25 01:02 +0200
              Re: Assigning void Eric Sosman <esosman@comcast-dot-net.invalid> - 2012-10-24 20:21 -0400
                Re: Assigning void Martin Gregorie <martin@address-in-sig.invalid> - 2012-10-25 20:04 +0000
                (OT) Re: Assigning void Eric Sosman <esosman@comcast-dot-net.invalid> - 2012-10-25 16:31 -0400
                Re: (OT) Re: Assigning void Martin Gregorie <martin@address-in-sig.invalid> - 2012-10-25 20:44 +0000
            Re: Assigning void Arved Sandstrom <asandstrom2@eastlink.ca> - 2012-10-25 07:25 -0300
              Re: Assigning void Lew <lewbloch@gmail.com> - 2012-10-25 11:12 -0700
      Re: Assigning void Sven Köhler <remove-sven.koehler@gmail.com> - 2012-10-22 11:01 +0200
      Re: Assigning void Daniele Futtorovic <da.futt.news@laposte-dot-net.invalid> - 2012-10-23 00:38 +0200

csiph-web