seo门户网站建设方案,深圳 购物商城网站建设,网页制作教材,网盟推广是什么一、空结构体基础
空结构实例 和 空结构体变量 本质是一样的
1、所有空结构体地址都是一样的2、大小都为0#xff08;最独特的#xff09;
package mainimport (fmttimeunsafe
)type EST struct {
}func main() {// 一、基础// 空结构…一、空结构体基础
空结构实例 和 空结构体变量 本质是一样的
1、所有空结构体地址都是一样的2、大小都为0最独特的
package mainimport (fmttimeunsafe
)type EST struct {
}func main() {// 一、基础// 空结构实例 和 空结构体变量 本质是一样的// 1、所有空结构体地址都是一样的// 2、大小都为0最独特的var a ESTvar b struct{}fmt.Printf(a address %p, size %d \n, a, unsafe.Sizeof(a))fmt.Printf(b address %p, size %d \n, b, unsafe.Sizeof(b))if a b {fmt.Println(......)}
} 输出结果 a address 0x10030c028, size 0 b address 0x10030c028, size 0 … 二、应用场景一 充当 set
package mainimport (fmttimeunsafe
)type EST struct {
}func main() {// 二、应用场景一充当 setset : make(map[string]interface{}, 10)set[A] EST{}set[B] struct{}{}fmt.Println(len(set))for k, _ : range set {fmt.Println(k)}
}
三、应用场景二 协程阻塞
1、协程阻塞的三种方式
1、一种是通过 waitGroup通过调wait函数把本协程阻塞掉2、通过 time.Sleep()3、使用 管道 channel 读写阻塞
2、channel方式阻塞 main
package mainimport (fmttimeunsafe
)type EST struct {
}func main() {// 三、应用场景二协程阻塞// 1、一种是通过 waitGroup通过调wait函数把本协程阻塞掉// 2、通过 time.Sleep()// 3、使用 管道 channel 读写阻塞// 下面展示为channel方式阻塞 mainctra : make(chan EST, 0)go func() {time.Sleep(3 * time.Second)fmt.Println(等待子协程执行完成)ctra - EST{}}()fmt.Println(---------)-ctra
}