You're right but I think developers of Go can think about that because its 
benefits are obvious.

On Friday, August 24, 2018 at 1:23:32 AM UTC+4:30, Axel Wagner wrote:
>
> On Thu, Aug 23, 2018 at 9:44 AM Masoud Ghorbani <msud.g...@gmail.com 
> <javascript:>> wrote:
>
>> Your opinion is like to say all of the python application should rethink 
>> and re-write their structure because they used default values.
>>
>
> One general thing to observe in all these discussions is, that Go is not 
> Python (or Rust, Haskell, C#,…). Different languages have different goals, 
> weigh them differently and choose different solutions to get there - and 
> that's okay. Saying something isn't right for Go isn't the same as saying 
> something isn't right for a different language. In the same way, saying 
> some other language is doing something is not a convincing argument that Go 
> should do it too.
>  
>
>> I think having default values for parameters is just a feature which will 
>> make codebase readable and smaller than before.
>>
>> On Thursday, August 23, 2018 at 4:38:23 AM UTC+4:30, Louki Sumirniy wrote:
>>>
>>> There is a default value for everything in Go. Null. 0, "" and nil. As 
>>> someone else said, if you want a parameter to be optional you probably need 
>>> ...interface{} and then infer no parameter as 'use the default'. Going a 
>>> little further, you can build default values into a constructor function 
>>> for an interfaced type. 
>>>
>>> Oh, probably the neatest solution is to make a struct that lets you 
>>> input the parameters either in-order or with labels instead. Then you can 
>>> use &TypeName{} to mean 'use defaults' or whichever parameters are not 
>>> specified get automatically set to default, either unlabeled and ordered 
>>> such that the values that will be asserted to defaults are not the first 
>>> ones in a struct literal used to feed parameters in. Or make the names nice 
>>> and concise so they aren't troublesome to add (and if your code is going to 
>>> often use defaults, probably you won't even have to specify many values 
>>> very often anyway).
>>>
>>> Assertions and labeled parameters are nice features but they don't 
>>> really save you that much time. I would suggest that it's more likely you 
>>> need to rethink the structure of your application and make slightly 
>>> different named parameters for those calls that will use defaults for 
>>> specific parameters.
>>>
>>> Another thing is that you can make null variables imply the use of 
>>> defaults, then you only need to put 'nil' '""' or '0' into these parameters 
>>> and the code will test and fill them automatically. Or if null isn't handy, 
>>> you can define sentinel values for a type that indicate 'use defaults'.
>>>
>>> On Wednesday, 22 August 2018 14:39:37 UTC+2, Masoud Ghorbani wrote:
>>>>
>>>> Why there isn't function argument default value in Golang explicitly 
>>>> like Typescript and Python?
>>>>
>>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "golang-nuts" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to golang-nuts...@googlegroups.com <javascript:>.
>> For more options, visit https://groups.google.com/d/optout.
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to