Go每日一题(9) 的题目如下

4675 次点击 · 9 赞 ·大约8小时之前 开始浏览   · 来源「极客兔兔」

空 struct{} 占多少空间?有什么用途?

4675 阅读
48 回复
liudui
liudui · #1 · 3年之前

struct{} 占用的空间是 0,一般用途和 channel 结合做信号。

xwszt
xwszt · #2 · 3年之前

可以用来设计Set集合

Natsuwau
Natsuwau · #3 · 3年之前

应该就是空吧

Rob1n
Rob1n · #4 · 3年之前

set集合

brothersam
brothersam · #5 · 3年之前

通过chanel做协程间互动的。

henry1
henry1 · #6 · 3年之前

OK

neil_liu
neil_liu · #7 · 3年之前

mark

feiyang
feiyang · #8 · 3年之前

mark

gonglf
gonglf · #9 · 3年之前
  • 空 struct{} 的用途:占用的空间是 0,可以节省内存,一般作为占位符使用,表明这里并不需要一个值。
  • 使用 map 表示集合时,只关注 key,value 可以使用 struct{} 作为占位符。
  • 使用信道(channel)控制并发时,我们只是需要一个信号
  • 声明只包含方法的结构体。
halo_young
halo_young · #10 · 3年之前

m

lwcbest
lwcbest · #11 · 3年之前
gonglfgonglf #9 回复

- 空 struct{} 的用途:占用的空间是 0,可以节省内存,一般作为占位符使用,表明这里并不需要一个值。 - 使用 map 表示集合时,只关注 key,value 可以使用 struct{} 作为占位符。 - 使用信道(channel)控制并发时,我们只是需要一个信号 - 声明只包含方法的结构体。

点赞

minQie
minQie · #12 · 3年之前

di

gobanger
gobanger · #13 · 3年之前

这样才对

func main() {
    ch := make(chan struct{})
    go func() {
       // do something
        <-ch
    }()
    ch <- struct{}{}
    // ...
}
_Aiden_
_Aiden_ · #14 · 3年之前

打卡

NovaChaos
NovaChaos · #15 · 3年之前

mk

feiyang
feiyang · #16 · 3年之前

mark

brothersam
brothersam · #17 · 3年之前

占用 0 空间,主要用于 chanle 传递信号

Zuos
Zuos · #18 · 3年之前

mark

neil_liu
neil_liu · #19 · 3年之前

mark

felixzxk
felixzxk · #20 · 3年之前

mark

wzbwzt
wzbwzt · #21 · 3年之前

1

Dessert
Dessert · #22 · 3年之前

struct{}{}空结构体,省内存占位符 1.map只关注Key,如Set集合 2.channel只需要一个信号 3.定义只包含方法的结构体

liqifeng
liqifeng · #23 · 3年之前

0,占位符

QRQRQRqrqr
QRQRQRqrqr · #24 · 3年之前

{{image.png(uploading...)}}空结构的作用

feiyang
feiyang · #25 · 3年之前
feiyangfeiyang #16 回复

mark

第二次打卡:空 struct{} 的用途

NovaChaos
NovaChaos · #26 · 3年之前

mk

brothersam
brothersam · #27 · 3年之前

0空间,主要用于chanel传递信号

Alilestera
Alilestera · #28 · 3年之前

image.png

——来自Go语言圣经

a406299736
a406299736 · #29 · 3年之前

打卡

Dessert
Dessert · #30 · 3年之前
gonglfgonglf #9 回复

- 空 struct{} 的用途:占用的空间是 0,可以节省内存,一般作为占位符使用,表明这里并不需要一个值。 - 使用 map 表示集合时,只关注 key,value 可以使用 struct{} 作为占位符。 - 使用信道(channel)控制并发时,我们只是需要一个信号 - 声明只包含方法的结构体。

tag!

hasbug
hasbug · #31 · 3年之前

mark

wzbwzt
wzbwzt · #32 · 3年之前

1

ueueq
ueueq · #33 · 3年之前

空 struct{} 的用途:占用的空间是 0,可以节省内存,一般作为占位符使用,表明这里并不需要一个值

使用 map 表示不重复的集合时,只关注 key,value 可以使用 struct{} 作为占位符

使用信道(channel)控制并发时,我们只是需要一个信号

声明只包含方法的结构体

summers
summers · #34 · 3年之前

m

huangyf168
huangyf168 · #35 · 2年之前

mark

feiyang
feiyang · #36 · 2年之前

使用空结构体 struct{} 可以节省内存,一般作为占位符使用,表明这里并不需要一个值。

hasbug
hasbug · #37 · 2年之前

mark

Dessert
Dessert · #38 · 2年之前
gonglfgonglf #9 回复

- 空 struct{} 的用途:占用的空间是 0,可以节省内存,一般作为占位符使用,表明这里并不需要一个值。 - 使用 map 表示集合时,只关注 key,value 可以使用 struct{} 作为占位符。 - 使用信道(channel)控制并发时,我们只是需要一个信号 - 声明只包含方法的结构体。

mark

wzbwzt
wzbwzt · #39 · 2年之前

1

beenleqi
beenleqi · #40 · 2年之前

mark

flyZ
flyZ · #41 · 2年之前

mark

YuPeng
YuPeng · #42 · 2年之前

打卡

feiyang
feiyang · #43 · 2年之前

struct{}{}空结构体,省内存占位符 1.map只关注Key,如Set集合 2.channel只需要一个信号 3.定义只包含方法的结构体

hasbug
hasbug · #44 · 2年之前

mark

huangyf168
huangyf168 · #45 · 2年之前

mark

euibieur894
euibieur894 · #46 · 2年之前

打卡

hasbug
hasbug · #47 · 2年之前

mark

brothersam
brothersam · #48 · 大约1年之前

0空间,chan之间传递控制信号,还有map进行去重

添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传