PROPOSAL: Elvis operator (original) (raw)
Olivier Chorier lapsus63 at gmail.com
Sat Mar 21 09:47:10 PDT 2009
- Previous message: PROPOSAL: Elvis operator
- Next message: PROPOSAL: Named method parameters
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Oh, ok, I get it : Ex. : int value = object.getSubObject().getValue() ?: -1 ;
So, I'm not sure the use of .? to be necessary.
What do you think about an explicit ((MyObject) null)... ?: defValue;
Marek told:
<<What if we have default SubObject which we can use when main one is null, and it's ugly generic:
SubObject<FirstType,**SecondType,TirdType,.......> subObject = object.?getSubObject() ?: default;>> --> "default" would have to be cast as SubObject<FirstType, SecondType, ThirdType>, wouldn't it ?
Finally, another idea could be not to use '?:' neither '.?' but a reversed way to use: int value = object?.getSubObject()?.getValue()? : -1
- object null ? return -1;
- object.getSubObject() null ? return -1;
- object.getSubObject().getValue() null ? return -1;
But it implies the multiple use of '?', which is in my opinion not very sexy (but more detailed and "configurable")
2009/3/21 Marek Kozieł <develop4lasu at gmail.com>
W dniu 21 marca 2009 16:00 użytkownik Olivier Chorier <lapsus63 at gmail.com> napisał: > > Ok, what about : > > int value ?= object.getSubObject().getValue() : -1; > > Pros : > - I think the compiler could easily retranscript it using > - Much more readable > > Cons : > - The potential problem is that the "interpretation" differs from an &= or += operator >
It's ok for me, in this case. But did you ever wander why NPE is so common? Isn't that because people do not want write so much if-s and declare so many one time used variables. but ?: can give something nice: void f(Some some){ ( some.getOut ?: defOut ).write(...); ... } while ?= would require to: void f(Some some){ OutputStream out ?= some.getOut : defOut; out.write(...); // Now we need worry for 'out' till end of function. ... } -- Pozdrowionka. / Regards. Lasu aka Marek Kozieł http://lasu2string.blogspot.com/
- Previous message: PROPOSAL: Elvis operator
- Next message: PROPOSAL: Named method parameters
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]