网络编程
位置:首页>> 网络编程>> Go语言>> Golang中struct{}和struct{}{}的区别解析

Golang中struct{}和struct{}{}的区别解析

作者:路多辛  发布时间:2024-04-23 09:36:21 

标签:go,struct{},struct{}{}

首先说下Golang中的结构体,结构体是由一系列具有相同类型或不同类型的数据构成的数据集合,Golang中使用关键字struct来创建一个结构体,语法如下:

typeStudentstruct {
 Name string
}

下面定义一个Student结构体,例如:

typeStudentstruct {
name  string
}

然后声明一个Student类型的变量并赋值

var stu Student
stu.name = "小明"

声明一个struct类型变量并赋值还有一种方式是使用匿名struct,代码非常简洁:

stu := struct {
   name string
}{
   "小明",
}

还可以使用匿名struct声明一个变量但不赋值,例如:

stu := struct {

}{

}

把空行和空格去掉后就是struct {} {},所以到此就可以看出struct {}和struct {} {}的区别了。

struct {}

struct {}和struct { name string }一样是结构体类型, 只是没有任何元素。struct {}的特点是大小为0,不占用任何内存。

struct {} {}

struct {} {}一个struct {}类型的值,该值也是空。

使用场景举例

比如使用map类型构造集合,可以使用这样一个类型的map:map[string]struct{},使用struct{}类型的值来节省空间。

package main

import"fmt"funcmain() {
zoo := make(map[string]struct{})
zoo["monkey"] = struct{}{}
zoo["tiger"] = struct{}{}
_, ok := zoo["monkey"]
fmt.Println("Is monkey in the zoo?", ok)
_, ok = zoo["cat"]
fmt.Println("Is cat in the zoo?", ok)
}

运行程序,输出如下内容:

Ismonkeyinthezoo?trueIscatinthezoo?false

来源:https://blog.csdn.net/luduoyuan/article/details/129095066

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com