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