Go中 struct{} 和 struct{}{}区别 您所在的位置:网站首页 幼儿教育资源网站官网首页 Go中 struct{} 和 struct{}{}区别

Go中 struct{} 和 struct{}{}区别

2022-12-31 10:17| 来源: 网络整理| 查看: 265

学习博客:https://www.cnblogs.com/show58/p/12655375.html

struct是Go中的关键字,用于定义结构类型。

type User struct { Name string Age int }

struct {} :表示struct类型 struct {}是一种普通数据类型,一个无元素的结构体类型,通常在没有信息存储时使用。 优点是大小为0,不需要内存来存储struct {}类型的值。

struct {} {}:表示struct类型的值,该值也是空。 struct {} {}是一个复合字面量,它构造了一个struct {}类型的值,该值也是空。

var set map[string]struct{} set = make(map[string]struct{}) // Add some values to the set: set["red"] = struct{}{} set["blue"] = struct{}{} // Check if a value is in the map: _, ok := set["red"] fmt.Println("Is red in the map?", ok) _, ok = set["green"] fmt.Println("Is green in the map?", ok)

输出内容

Is red in the map? true Is green in the map? false

通常struct{}类型channel的用法是使用同步, 一般不需要往channel里面写数据,只有读等待,而读等待会在channel被关闭的时候返回。

借鉴博客:https://www.cnblogs.com/show58/p/12655396.html

package main import ( "time" "log" ) var ch chan struct{} = make(chan struct{}) func foo() { log.Println("foo start"); time.Sleep(3 * time.Second) log.Println("foo close chan"); close(ch) log.Println("foo end"); } func main() { log.Println("main start"); go foo() log.Println("main wait chan");


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有