這篇文章的內(nèi)容主要圍繞如何分析Go語(yǔ)言的類型系統(tǒng)進(jìn)行講述,文章內(nèi)容清晰易懂,條理清晰,非常適合新手學(xué)習(xí),值得大家去閱讀。感興趣的朋友可以跟隨小編一起閱讀吧。希望大家通過(guò)這篇文章有所收獲!
長(zhǎng)沙網(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)站建設(shè)等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。成都創(chuàng)新互聯(lián)自2013年起到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)。
對(duì)于面向?qū)ο缶幊痰闹С?,Go 語(yǔ)言的實(shí)現(xiàn)可以說(shuō)是完全顛覆了以往我們對(duì)面向?qū)ο缶幊痰恼J(rèn)知,下面我們先通過(guò)對(duì) Go 語(yǔ)言類型系統(tǒng)的介紹讓你有一個(gè)整體的認(rèn)知。
Go 語(yǔ)言面向?qū)ο缶幊淘O(shè)計(jì)得簡(jiǎn)潔而優(yōu)雅。
簡(jiǎn)潔之處在于,Go 語(yǔ)言并沒(méi)有沿襲傳統(tǒng)面向?qū)ο缶幊讨械闹T多概念,比如類的繼承、接口的實(shí)現(xiàn)、構(gòu)造函數(shù)和析構(gòu)函數(shù)、隱藏的 this 指針等,也沒(méi)有 public、protected、private 之類的可見(jiàn)性修飾符。
優(yōu)雅之處在于,Go 語(yǔ)言對(duì)面向?qū)ο缶幊痰闹С质钦Z(yǔ)言類型系統(tǒng)中的天然組成部分,整個(gè)類型系統(tǒng)通過(guò)接口串聯(lián),渾然一體。
很少有編程類的書(shū)談及類型系統(tǒng)這個(gè)話題,實(shí)際上類型系統(tǒng)才是一門編程語(yǔ)言的地基,它的地位至關(guān)重要。因此,這里我們將從類型系統(tǒng)入手介紹 Go 語(yǔ)言的面向?qū)ο缶幊烫匦浴?/p>
顧名思義,類型系統(tǒng)是指一個(gè)語(yǔ)言的類型體系結(jié)構(gòu)。一個(gè)典型的類型系統(tǒng)通常包含如下基本內(nèi)容:
基礎(chǔ)類型,如 byte
、int
、bool
、float
、string
等;
復(fù)合類型,如數(shù)組、切片、 字典、結(jié)構(gòu)體、指針等;
可以指向任意對(duì)象的類型(Any
類型);
值語(yǔ)義和引用語(yǔ)義;
面向?qū)ο螅此芯邆涿嫦驅(qū)ο筇卣鳎ū热绯蓡T方法)的類型;
接口。
類型系統(tǒng)描述的是這些內(nèi)容在一個(gè)語(yǔ)言中如何被關(guān)聯(lián)。因?yàn)?Java 語(yǔ)言自誕生以來(lái)被稱為最純正的面向?qū)ο笳Z(yǔ)言,所以我們就先以 Java 語(yǔ)言為例講一講類型系統(tǒng)。
在 Java 語(yǔ)言中,存在兩套完全獨(dú)立的類型系統(tǒng):一套是值類型系統(tǒng),主要是基本類型,如 byte
、int
、boolean
、char
、double
等,這些類型基于值語(yǔ)義;一套是以 Object
類型為根的對(duì)象類型系統(tǒng),這些類型可以定義成員變量和成員方法,可以有虛函數(shù),基于引用語(yǔ)義,只允許在堆上創(chuàng)建(通過(guò)使用關(guān)鍵字 new
)。Java 語(yǔ)言中的 Any
類型就是整個(gè)對(duì)象類型系統(tǒng)的根 —— java.lang.Object
類型,只有對(duì)象類型系統(tǒng)中的實(shí)例才可以被 Any
類型引用。值類型想要被 Any
類型引用,需要裝箱 (boxing)過(guò)程,比如 int
類型需要裝箱成為 Integer
類型。另外,只有對(duì)象類型系統(tǒng)中的類型才可以實(shí)現(xiàn)接口,具體方法是讓該類型從要實(shí)現(xiàn)的接口繼承。
相比之下,Go 語(yǔ)言中的大多數(shù)類型都是值語(yǔ)義,并且都可以包含對(duì)應(yīng)的操作方法。在需要的時(shí)候,你可以給任何類型(包括內(nèi)置類型)增加新方法。而在實(shí)現(xiàn)某個(gè)接口時(shí),無(wú)需從該接口繼承(事實(shí)上,Go 語(yǔ)言根本就不支持面向?qū)ο笏枷胫械睦^承、實(shí)現(xiàn)語(yǔ)法),只需要實(shí)現(xiàn)該接口要求的所有方法即可。任何類型都可以被 Any
類型引用。在 Go 語(yǔ)言中,Any
類型就是空接口,即 interface{}
。
注:這里的值語(yǔ)義和引用語(yǔ)義等價(jià)于之前介紹類型時(shí)提到的值類型和引用類型。
go是什么
golang是一種編譯語(yǔ)言,可以將代碼編譯為機(jī)器代碼,編譯后的二進(jìn)制文件可以直接部署到目標(biāo)機(jī)器而無(wú)需額外的依賴,所以golang的性能優(yōu)于其他的解釋性語(yǔ)言,且可以在golang中使用goroutine來(lái)實(shí)現(xiàn)并發(fā)性,它提供了一個(gè)非常優(yōu)雅的goroutine調(diào)度程序系統(tǒng),可以很容易地生成數(shù)百萬(wàn)個(gè)goroutine。
感謝你的閱讀,相信你對(duì)“如何分析Go語(yǔ)言的類型系統(tǒng)”這一問(wèn)題有一定的了解,快去動(dòng)手實(shí)踐吧,如果想了解更多相關(guān)知識(shí)點(diǎn),可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站!小編會(huì)繼續(xù)為大家?guī)?lái)更好的文章!
網(wǎng)站題目:如何分析Go語(yǔ)言的類型系統(tǒng)
轉(zhuǎn)載來(lái)源:http://jinyejixie.com/article28/ppiscp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航、搜索引擎優(yōu)化、App設(shè)計(jì)、用戶體驗(yàn)、外貿(mào)網(wǎng)站建設(shè)、靜態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)