溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Golang中struct{}和struct{}{}的區(qū)別是什么

發(fā)布時(shí)間:2023-03-22 16:21:01 來源:億速云 閱讀:78 作者:iii 欄目:開發(fā)技術(shù)

今天小編給大家分享一下Golang中struct{}和struct{}{}的區(qū)別是什么的相關(guān)知識點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

首先說下Golang中的結(jié)構(gòu)體,結(jié)構(gòu)體是由一系列具有相同類型或不同類型的數(shù)據(jù)構(gòu)成的數(shù)據(jù)集合,Golang中使用關(guān)鍵字struct來創(chuàng)建一個結(jié)構(gòu)體,語法如下:

typeStudentstruct { 
  Name string 
}

下面定義一個Student結(jié)構(gòu)體,例如:

typeStudentstruct {
 		name  string
}

然后聲明一個Student類型的變量并賦值

var stu Student
stu.name = "小明"

聲明一個struct類型變量并賦值還有一種方式是使用匿名struct,代碼非常簡潔:

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

還可以使用匿名struct聲明一個變量但不賦值,例如:

stu := struct {
 
}{
    
}

把空行和空格去掉后就是struct {} {},所以到此就可以看出struct {}和struct {} {}的區(qū)別了。

struct {}

struct {}和struct { name string }一樣是結(jié)構(gòu)體類型, 只是沒有任何元素。struct {}的特點(diǎn)是大小為0,不占用任何內(nèi)存。

struct {} {}

struct {} {}一個struct {}類型的值,該值也是空。

使用場景舉例

比如使用map類型構(gòu)造集合,可以使用這樣一個類型的map:map[string]struct{},使用struct{}類型的值來節(jié)省空間。

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)
}

運(yùn)行程序,輸出如下內(nèi)容:

Ismonkeyinthezoo?trueIscatinthezoo?false

以上就是“Golang中struct{}和struct{}{}的區(qū)別是什么”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學(xué)習(xí)更多的知識,請關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI