Could you explain how this is a race condition?
Running it in the playground appears to succeed, 
https://play.golang.org/p/zs6T361fc6




On Saturday, March 25, 2017 at 7:51:52 PM UTC-7, Dragos Harabor wrote:
>
> You may also run into subtle races when you mix pointer and value 
> receivers, as seen here:
> https://dave.cheney.net/2015/11/18/wednesday-pop-quiz-spot-the-race
>
>
> On Friday, March 24, 2017 at 6:20:06 PM UTC-7, st ov wrote:
>>
>> Is it idiomatic to mix-&-match pointer and value method receivers for a 
>> given type? 
>> or in *general*, if a single method requires a pointer receiver than *all 
>> methods* should take a pointer, regardless if a value receiver is 
>> appropriate?
>>
>> For example, should Foo.SetVal also be a pointer receiver even though a 
>> value receiver would be acceptable?
>> https://play.golang.org/p/rd_6BLol8O
>>
>> type Foo struct{
>>     ref []int
>>     val int
>> }
>>
>> // would not set if method receiver is value receiver (foo Foo)
>> func (foo *Foo) SetRef(ref []int) {
>>     foo.ref = ref
>> }
>> func (foo Foo) SetVal(val int) {
>>     foo.val = val
>> }
>>
>> func main() {
>>     foo := Foo{}
>>     foo.SetRef([]int{1,2,3})
>>     foo.SetVal(1)
>>     
>>     fmt.Printf("%v",foo) // {[1 2 3] 0}
>> }
>>
>>
>>
>>

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