Hello everybody, My name is Gianluca Sartori, from Italy, I am the author of the open source project Dueuno Elements (https://github.com/dueuno-projects/dueuno-elements) and I am new to this list.
I would like to start using the more Java-ish `var` instead of the Python-ish `def` lexicon but I came across the fact that I cannot use `var` as method return type placeholder. My understanding is that I can use `var` for both local variables and class fields/properties but I cannot use it, for example, if I want to have a read only property. The code below does not compile: class C { var firstname var lastname var getFullname() { return firstname + ' ' + lastname } } var c = new C(firstname: 'Gianluca', lastname: 'Sartori') c.fullname I'd like to switch to using `var` as a type placeholder, but having to use `var` for variable declaration and keep using `def` for methods definition is something I don't understand. I love Groovy because it is easy. This restriction of the `var` type placeholder forces me to write code that mixes Python lexicon the new Java lexicon. My main worry is with Grails controllers where we need to define an action using `def` (or `Object`) as return type and define variables in the method body. At the moment we have the following options: *def* index() { *def* myVar = ... } *def* index() { *var* myVar = ... } *def* index() { *Object* myVar = ... } *Object* index() { *def* myVar = ... } *Object* index() { *var* myVar = ... } *Object* index() { *Object* myVar = ... } I would like to write controllers like this: *var* index() { *var* myVar = ... } to keep the code clean and coherent with the Groovy documentation that states clearly that *"If you think of def and var as an alias of Object, you will understand in an instant."* Is this enough of an argument to ask for an implementation of `var` that is fully intrechangable with `def`? Please let me know what is your opinion on that, cheers, Gianluca Gianluca Sartori -- Cell. +39 388 1026822