Re: [go-nuts] Assignment of pointer values in a struct...

2020-06-04 Thread Jan Mercl
On Thu, Jun 4, 2020 at 5:13 PM Trig  wrote:
>
> And I did it again... posted from another gmail account by accident, and my 
> post is forever in 'approval status', lol.  Basically what Robert here said.
>
> On Thursday, June 4, 2020 at 9:53:56 AM UTC-5, Robert Engels wrote:
>>
>> You need pointers to strings if you need a nil value to be represented which 
>> is often the case in databases.

That's a very expensive way to represent a simple boolean value.

type String struct {
S string
Valid bool
}

is a value of the same size as a slice is, so passing it around has
the same cost with no additional allocations.

-- 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/CAA40n-VNUAoMk5Fpy2FUgdAiT6e%3DNOYy-RA4T%3DOXkAXN4q9ufg%40mail.gmail.com.


Re: [go-nuts] Assignment of pointer values in a struct...

2020-06-04 Thread Trig
And I did it again... posted from another gmail account by accident, and my 
post is forever in 'approval status', lol.  Basically what Robert here said.

On Thursday, June 4, 2020 at 9:53:56 AM UTC-5, Robert Engels wrote:
>
> You need pointers to strings if you need a nil value to be represented 
> which is often the case in databases. 
>
> > On Jun 4, 2020, at 9:30 AM, Saksham Saxena  > wrote: 
> > 
> > Yep perfectly fine. MongoDB Driver for Go also uses such a wrapper at 
> many places where it takes a string as an argument and returns a pointer to 
> it which is required internally. Not really sure why use a pointer to 
> strings in Go because they're immutable, but I guess to reach their own. 
> > 
> > -- 
> > 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 golan...@googlegroups.com . 
> > To view this discussion on the web visit 
> https://groups.google.com/d/msgid/golang-nuts/17f2c250-ea5f-41fc-ac1b-0890a69f593b%40googlegroups.com.
>  
>
>
>

-- 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/b52446c0-8750-4f58-818c-ab985962ca25%40googlegroups.com.


Re: [go-nuts] Assignment of pointer values in a struct...

2020-06-04 Thread Robert Engels
You need pointers to strings if you need a nil value to be represented which is 
often the case in databases. 

> On Jun 4, 2020, at 9:30 AM, Saksham Saxena  wrote:
> 
> Yep perfectly fine. MongoDB Driver for Go also uses such a wrapper at many 
> places where it takes a string as an argument and returns a pointer to it 
> which is required internally. Not really sure why use a pointer to strings in 
> Go because they're immutable, but I guess to reach their own. 
> 
> -- 
> 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.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/golang-nuts/17f2c250-ea5f-41fc-ac1b-0890a69f593b%40googlegroups.com.

-- 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/D0E3E25A-A399-4CB4-809E-EC2216C782AE%40ix.netcom.com.


[go-nuts] Assignment of pointer values in a struct...

2020-06-04 Thread Saksham Saxena
Yep perfectly fine. MongoDB Driver for Go also uses such a wrapper at many 
places where it takes a string as an argument and returns a pointer to it which 
is required internally. Not really sure why use a pointer to strings in Go 
because they're immutable, but I guess to reach their own. 

-- 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/17f2c250-ea5f-41fc-ac1b-0890a69f593b%40googlegroups.com.


Re: [go-nuts] Assignment of pointer values in a struct...

2020-06-03 Thread Ian Lance Taylor
On Wed, Jun 3, 2020 at 7:33 PM Trig  wrote:
>
> I posted this question the other day and don't see it (may have posted from 
> another gmail account and it's still pending approval)... so here I am again.
>
> Let's say I have something like below:
> type (
>Person struct {
>   FirstName *string
>}
> )
>
> Usually, I see something like the following when assigning:
> fn := "John"
> _ = Person{
>   FirstName: &fn,
> }
>
> Would something like the following be alright and acceptable practice:
> _ = Person{
>   FirstName: pString("John")
> }
>
>
> func pString(content string) *string {
>return &content
> }

Sure, that's fine.

Ian

-- 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/CAOyqgcV8RLnADr1kZaA46aNWtugrfzseT87_heT9_bJupZ_f3g%40mail.gmail.com.


[go-nuts] Assignment of pointer values in a struct...

2020-06-03 Thread Trig
I posted this question the other day and don't see it (may have posted from 
another gmail account and it's still pending approval)... so here I am 
again.

Let's say I have something like below:
type (
   Person struct {
  FirstName *string
   }
)

Usually, I see something like the following when assigning:
fn := "John"
_ = Person{
  FirstName: &fn,
}

Would something like the following be alright and acceptable practice:
_ = Person{
  FirstName: pString("John")
}


func pString(content string) *string {
   return &content
}

-- 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/aa31103a-440b-4375-a1af-383f59c353f2%40googlegroups.com.