目錄
浙江網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、響應(yīng)式網(wǎng)站等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。成都創(chuàng)新互聯(lián)于2013年創(chuàng)立到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專(zhuān)注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)。
一、結(jié)構(gòu)體詳解
1. 結(jié)構(gòu)體定義
2. 實(shí)例化結(jié)構(gòu)體的7種方法
二、結(jié)構(gòu)體方法
1. 結(jié)構(gòu)體的方法定義
2. 結(jié)構(gòu)體內(nèi)自定義方法的引用
3. 任意類(lèi)型添加方法
三、嵌套、繼承
1. 匿名結(jié)構(gòu)體
2. 結(jié)構(gòu)體中可以定義任意類(lèi)型的字段
3. 結(jié)構(gòu)體嵌套結(jié)構(gòu)體
4. 結(jié)構(gòu)體嵌套匿名結(jié)構(gòu)體
5. 結(jié)構(gòu)體嵌套多個(gè)匿名結(jié)構(gòu)體
6. 結(jié)構(gòu)體繼承
四、結(jié)構(gòu)體和JSON相互轉(zhuǎn)換
1. 結(jié)構(gòu)體轉(zhuǎn)化成json
2. json轉(zhuǎn)化成結(jié)構(gòu)體
3. 結(jié)構(gòu)體標(biāo)簽 tag
4. 嵌套結(jié)構(gòu)體和json的序列化反序列化
Golang 中沒(méi)有“類(lèi)”的概念,Golang 中的結(jié)構(gòu)體和其他語(yǔ)言中的類(lèi)有點(diǎn)相似。和其他面向?qū)?象語(yǔ)言中的類(lèi)相比,Golang 中的結(jié)構(gòu)體具有更高的擴(kuò)展性和靈活性。
Golang 中的基礎(chǔ)數(shù)據(jù)類(lèi)型可以表示一些事物的基本屬性,但是當(dāng)我們想表達(dá)一個(gè)事物的全 部或部分屬性時(shí),這時(shí)候再用單一的基本數(shù)據(jù)類(lèi)型就無(wú)法滿(mǎn)足需求了,Golang 提供了一種 自定義數(shù)據(jù)類(lèi)型,可以封裝多個(gè)基本數(shù)據(jù)類(lèi)型,這種數(shù)據(jù)類(lèi)型叫結(jié)構(gòu)體,英文名稱(chēng) struct。 也就是我們可以通過(guò) struct 來(lái)定義自己的類(lèi)型了。
使用 type 和 struct 關(guān)鍵字來(lái)定義結(jié)構(gòu)體,具體代碼格式如下:
type 類(lèi)型名 struct {
字段名 字段類(lèi)型
字段名 字段類(lèi)型 …
}
其中:
? 類(lèi)型名:表示自定義結(jié)構(gòu)體的名稱(chēng),在同一個(gè)包內(nèi)不能重復(fù)。
? 字段名:表示結(jié)構(gòu)體字段名。結(jié)構(gòu)體中的字段名必須唯一。
? 字段類(lèi)型:表示結(jié)構(gòu)體字段的具體類(lèi)型。
在 go 語(yǔ)言中,沒(méi)有類(lèi)的概念但是可以給類(lèi)型(結(jié)構(gòu)體,自定義類(lèi)型)定義方法。所謂方法 就是定義了接收者的函數(shù)。接收者的概念就類(lèi)似于其他語(yǔ)言中的 this 或者 self。
方法的定義格式如下:
func (接收者變量 接收者類(lèi)型) 方法名(參數(shù)列表) (返回參數(shù)) {
函數(shù)體
}
注意:想改變結(jié)構(gòu)體內(nèi)的值,必須先變成指針。
在 Go 語(yǔ)言中,接收者的類(lèi)型可以是任何類(lèi)型,不僅僅是結(jié)構(gòu)體,任何類(lèi)型都可以擁有方法。 舉個(gè)例子,我們基于內(nèi)置的 int 類(lèi)型使用 type 關(guān)鍵字可以定義新的自定義類(lèi)型,然后為我們 的自定義類(lèi)型添加方法。
注意:匿名結(jié)構(gòu)體中不允許出現(xiàn)多個(gè)重復(fù)的類(lèi)型
注意:如果結(jié)構(gòu)體里面有私有屬性也就是小寫(xiě)定義的字段,則不會(huì)被json使用
Java是一門(mén)較為成熟的語(yǔ)言,相對(duì)于C++要簡(jiǎn)單的多,C++里沒(méi)有內(nèi)存回收,所以比較麻煩,Java加入了內(nèi)存自動(dòng)回收,簡(jiǎn)單是簡(jiǎn)單,卻變慢了,go語(yǔ)言是一門(mén)新興的語(yǔ)言,現(xiàn)在版本是1.9 ? go語(yǔ)言的性能比Java要好,但由于出現(xiàn)晚,資料較Java少,有些Java的功能go也沒(méi)有,并且有許多的軟件是支持Java但支持go的很少.所以在短期內(nèi)Java是比go通用的
C語(yǔ)言的最大的優(yōu)勢(shì)是時(shí)間性能好,只比匯編慢20%~30%,C++最大的優(yōu)勢(shì)是快且面向?qū)ο?Java最大的優(yōu)勢(shì)是垃圾回收機(jī)制,GO語(yǔ)言的目標(biāo)是具備以上三者的優(yōu)勢(shì)
golang 沒(méi)有繼承 另外 組合用結(jié)構(gòu)和接口解決了
你說(shuō)的繼承 在golang被拆分成 接口interface 和 結(jié)構(gòu)了 這兩個(gè)內(nèi)容中有部分類(lèi)似繼承
組合也沒(méi)有 也是用 接口和結(jié)構(gòu) 解決了
新聞標(biāo)題:go語(yǔ)言中的繼承,go如何實(shí)現(xiàn)繼承
標(biāo)題來(lái)源:http://jinyejixie.com/article44/hsiehe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號(hào)、企業(yè)建站、移動(dòng)網(wǎng)站建設(shè)、Google、定制開(kāi)發(fā)、靜態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)