docker 采用什么語(yǔ)言編寫(xiě)的?
Docker采用的是Go語(yǔ)言編寫(xiě)的,該語(yǔ)言一種靜態(tài)強(qiáng)類(lèi)型、編譯型、并發(fā)型,并具有垃圾回收功能的編程語(yǔ)言,常用于Web程序開(kāi)發(fā),并且具有成熟的Web開(kāi)發(fā)框架,如Beego、Gin、Iris等等。
Go語(yǔ)言描述
Go的語(yǔ)法接近C語(yǔ)言,但對(duì)于變量的聲明有所不同。Go支持垃圾回收功能。Go的并行模型是以東尼·霍爾的通信順序進(jìn)程(CSP)為基礎(chǔ),采取類(lèi)似模型的其他語(yǔ)言包括Occam和Limbo,但它也具有Pi運(yùn)算的特征,比如通道傳輸。在1.8版本中開(kāi)放插件(Plugin)的支持,這意味著現(xiàn)在能從Go中動(dòng)態(tài)加載部分函數(shù)。
與C++相比,Go并不包括如枚舉、異常處理、繼承、泛型、斷言、虛函數(shù)等功能,但增加了 切片(Slice) 型、并發(fā)、管道、垃圾回收、接口(Interface)等特性的語(yǔ)言級(jí)支持。Go 2.0版本將支持泛型,對(duì)于斷言的存在,則持負(fù)面態(tài)度,同時(shí)也為自己不提供類(lèi)型繼承來(lái)辯護(hù)。
不同于Java,Go內(nèi)嵌了關(guān)聯(lián)數(shù)組(也稱(chēng)為哈希表(Hashes)或字典(Dictionaries)),就像字符串類(lèi)型一樣。
Go 語(yǔ)言特點(diǎn)
Go語(yǔ)言是Google公司開(kāi)發(fā)的一種靜態(tài)的,編譯型并自帶垃圾回收和并發(fā)的變成語(yǔ)言.
Go語(yǔ)言的風(fēng)格類(lèi)似C語(yǔ)言,其語(yǔ)法在C語(yǔ)言的基礎(chǔ)上進(jìn)行了大幅度的優(yōu)化,去掉了不需要的表達(dá)式括號(hào),循環(huán)也只有for一種表示方法,就可以實(shí)現(xiàn)數(shù)值,鍵值等各種遍歷.因此, Go語(yǔ)言上手非常容易.
Go語(yǔ)言最具有特色的特性莫過(guò)于goroutine. Go語(yǔ)言在語(yǔ)言層可以通過(guò)goroutine對(duì)函數(shù)實(shí)現(xiàn)并發(fā)并行. goroutine類(lèi)似于線(xiàn)程,但并非線(xiàn)程, goroutine會(huì)在Go語(yǔ)言運(yùn)行時(shí)進(jìn)行自動(dòng)調(diào)度.因此,Go語(yǔ)言非常適合用于高并發(fā)網(wǎng)絡(luò)服務(wù)的編寫(xiě).
推薦教程:《Go教程》