On Sun, Aug 20, 2017 at 3:21 PM, Tong Sun <suntong...@gmail.com> wrote:

> On Sun, Aug 20, 2017 at 2:22 AM, Axel Wagner <
> axel.wagner...@googlemail.com> wrote:
>
> ii := new(int)
>> (*ii) = 3
>> (*ii)++
>>
>> Yes, it's not exactly the same syntax. It still demonstrates that what
>> you are suggesting creates, at best, very marginal benefit.
>>
>
> This is where I don't agree on.
>
> var ii *int
>>
>
> This is what you are suggesting, how to define the variable. I.e., *to
> replace "int?"*.
>

Again, what you write as "int?", you write as "*int" instead. What you
describe as "int?" is a type, that can either contain an int, or nothing.
That is exactly what pointers do; they are either nil, or contain a
reference to an int.


>
> ii = 3
>>
>
> This is what I believe what will happen if I parse json '{"ii", 3}' into
> it,
>

The semantics of particular packages is what they choose. In the case of
encoding/json, it does what you want: https://play.golang.org/p/3XIimrd6RF

or read 3 from DB into it.
>

I don't know how database/sql behaves in this matter. I suspect to a degree
that depends on the driver. In any case, this is a library-problem, not a
language problem.


> If not, then you didn't do a good job explaining your point.
>

You made a suggestion for a language change. I believe it is fair to put
the onus of explanation on you here. Both of what the expected benefits of
your proposal are and why the current semantics aren't enough.

ii++
>
>
> This demonstrate how I can deal with a "int?" variable in C#.
>

And I demonstrated how you can deal with a "*int" variable in Go in exactly
the same manner. I demonstrated that your suggestion seems to be exactly
that: That you want to write "ii++" instead of writing "(*ii)++". I
summarized that as "a very marginal benefit at best".


> So, all in all, you are either shooting without fully understand what I am
> asking, or don't understand what "int?" actually means in C#, or both.
>

Then explain better what you are asking for. I indeed don't know C#. But I
understand the ?-operator to be the equivalent of Maybe<T> in Haskell or
Option<T> in rust, the semantics of both I described above. Pointers are
providing the corresponding semantics for Go.


>
>
>> On Sun, Aug 20, 2017 at 8:00 AM, Tong Sun <suntong...@gmail.com> wrote:
>>
>>> <sigh> I did. why there are always people assuming the other party they
>>> are talking to is just silly. <sigh>
>>>
>>> Anyway, this is what i got:
>>>
>>> var ii *int
>>> ii = 3
>>> ii++
>>>
>>> cannot use 3 (type int) as type *int in assignment
>>>
>>> invalid operation: ii++ (non-numeric type *int)
>>>
>>>
>>>
>>> On Sun, Aug 20, 2017 at 1:24 AM, Tyler Compton <xavi...@gmail.com>
>>> wrote:
>>>
>>>> I don't think it's immediately obvious what use cases this "int?"
>>>> proposal delivers that aren't covered by "*int". The encoding/json package
>>>> uses pointers to support null JSON values.
>>>>
>>>> As a more general point, when someone answers your question, they're
>>>> taking time out of their day to help you. I think it's reasonable for the
>>>> burden of proof to be put upon the asker, who is looking to others for 
>>>> help.
>>>>
>>>> On Sat, Aug 19, 2017 at 9:28 PM Tong Sun <suntong...@gmail.com> wrote:
>>>>
>>>>> Oh yeah? Are you sure what you are answering is what I'm asking?
>>>>>
>>>>> Please try to understand what people are asking before showing off
>>>>> yourself, or post concrete example to proof that you understand correctly
>>>>> what people are asking.
>>>>>
>>>>> On Sat, Aug 19, 2017 at 4:02 PM, Axel Wagner <
>>>>> axel.wagner...@googlemail.com> wrote:
>>>>>
>>>>>> Go can do what you want today, just that it's spelled "*int".
>>>>>>
>>>>>> On Sat, Aug 19, 2017 at 6:01 PM, Tong Sun <suntong...@gmail.com>
>>>>>> wrote:
>>>>>>
>>>>>>> - "int?" will be a different type than "int". I.e., we know very
>>>>>>> well what we are sacrificing when we choose that type.
>>>>>>> - There is a demand there, json and/or sql. Denying it won't make it
>>>>>>> go away.
>>>>>>>
>>>>>>> (*Sorry to Jan, was sending to the wrong place*)
>>>>>>>
>>>>>>> On Sat, Aug 19, 2017 at 11:54 AM, Jan Mercl <0xj...@gmail.com>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> On Sat, Aug 19, 2017 at 5:05 PM Tong Sun <suntong...@gmail.com>
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>> > Suggesting C# type syntax like "int?" so as to take nil as valid
>>>>>>>> value.
>>>>>>>>
>>>>>>>> - As int is not a pointer type, what would nil int mean?
>>>>>>>>
>>>>>>>> - Are you willing to sacrifice extra storage for the additional
>>>>>>>> isNil information or do you prefer that int cannot represent
>>>>>>>> 2^(sizeof(int)*8) different values?
>>>>>>>>
>>>>>>>> - (xyproblem?) If you need the information like 'isValid', why a
>>>>>>>> separate bool [field] is not enough?
>>>>>>>>
>>>>>>>> --
>>>>>>>>
>>>>>>>> -j
>>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> 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.
>>>>>>>
>>>>>>
>>>>>>
>>>>> --
>>>>> 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.
>>>>>
>>>>
>>>
>>
>

-- 
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