Why not use struct{}?  Is what is recommended for maps to notate a set
(only the keys mean something).

https://play.golang.org/p/fxtEWejqdh

On Tue, Jul 11, 2017, 11:34 PM Rader <rader....@gmail.com> wrote:

> I found the position of `[0]byte` in the struct matters.
>  type bar2 struct {
> A int
> _ [0]byte
> }
>
> differs from
>
> type bar3 struct {
> _ [0]byte
> A int
> }
>
>
>
> see the full example <https://play.golang.org/p/wJkDPQ0PQ3>
>
>
>
> On Wednesday, July 12, 2017 at 10:44:04 AM UTC+8, Rader wrote:
>>
>> they both have the same size, eg. following structs bar and bar2 both
>> take 16 bytes memory on a x64 machine.
>>
>> package main
>>
>> import (
>>     "fmt"
>>     "unsafe"
>> )
>>
>> type bar struct {
>>     A int
>>     _ bool
>> }
>>
>> type bar2 struct {
>>     A int
>>     _ [0]byte
>>
>> }
>>
>> func main() {
>>     bar := bar{}
>>     bar2 := bar2{}
>>     fmt.Printf("size of bar:%v\n", unsafe.Sizeof(bar))
>>     fmt.Printf("size of bar2:%v\n", unsafe.Sizeof(bar2))
>> }
>>
>>
>>
>> On Thursday, July 6, 2017 at 11:45:30 AM UTC+8, kortschak wrote:
>>>
>>> On Wed, 2017-07-05 at 17:26 -0700, rsr via golang-nuts wrote:
>>> > type bar struct {
>>> >    A int
>>> >    _ bool
>>> > }
>>>
>>>
>>> or `type bar struct { A int; _ [0]byte }` to avoid the additional byte
>>> use.
>>>
>>> --
> 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