Same here.Syntax would definitely clash with my existing code, is imho too concise / not obvious enough for a rare requirement.
Wondering if this is important enough to consider doing this now (@Daniel: Am I right in assuming you want to get as much new syntax into 3.0 as possible ?-) ), but think concept is worth expoloring in principle.
From ther top of my hat:If we had support for parameters to methods being passed as an expression (as in C#) / not being evaluated, one could potentially write this based on that concept (but intrdoucing that would be an even bigger step) (?) In general I am a propenent of having powerful, general building blocks in a language, instead of specialized syntax for spezialized features.
Otherwise (based on things already mentioned):
1. final records = proxy { doQueryFromDB() } // closure style
2. final records = proxy doQueryFromDB() // keyword style
3. final records = proxy(doQueryFromDB()) // function style
4. Something with @Lazy(proxy=true) ?
Cheers,
mg
On 17.03.2018 14:21, Suderman Keith wrote:
+1 for the concept.-1 for using parenthesis. As Andrew says, this introduces new behaviour for parenthesis that I think violates the principle of least surprise.KeithOn Mar 17, 2018, at 1:54 PM, Andrew Bayer <[email protected] <mailto:[email protected]>> wrote:Agreed - I don’t think this actually provides much, if any, real value, is syntactically confusing, and feels like it could cause some problems with existing code that assumes parentheses aren’t going to result in new behavior.A.On Sat, Mar 17, 2018 at 8:35 AM Cédric Champeau <[email protected] <mailto:[email protected]>> wrote:-1, I also think this is confusing. 2018-03-17 13:30 GMT+01:00 Guillaume Laforge <[email protected] <mailto:[email protected]>>: I also find it confusing, in particular because it's not obvious, and there's some redundancy already with @Lazy (and Paolo has a good point as well as using closures are somewhat of a palliative as well) Perhaps we could think of ways to further improve / expand @Lazy perhaps? (rather than inventing something new / additional) On Sat, Mar 17, 2018 at 12:01 PM, Paolo Di Tommaso <[email protected] <mailto:[email protected]>> wrote: Frankly I found this confusing, it looks to me that the same concept can be implemented just using a closure. p On Sat, Mar 17, 2018 at 9:08 AM, Daniel.Sun <[email protected] <mailto:[email protected]>> wrote: Hi Guillaume, I planed to generate proxy for lazy evaluation, so even if the reference of object is accessed, evaluation will not be triggered either, which is different from @Lazy Cheers, Daniel.Sun -- Sent from: http://groovy.329449.n5.nabble.com/Groovy-Dev-f372993.html-- Guillaume LaforgeApache Groovy committer & PMC Vice-President Developer Advocate @ Google Cloud Platform Blog: http://glaforge.appspot.com/ Social: @glaforge <http://twitter.com/glaforge> / Google+ <https://plus.google.com/u/0/114130972232398734985/posts>
