golang是一種靜態強型別、編譯型、並行型,並具有垃圾回收功能的程式語言;它可以在不損失應用程式效能的情況下極大的降低程式碼的複雜性,還可以發揮多核處理器同步多工的優點,並可解決物件導向程式設計的麻煩,並幫助程式設計師處理瑣碎但重要的記憶體管理問題。
php入門到就業線上直播課:進入學習
Apipost = Postman + Swagger + Mock + Jmeter 超好用的API偵錯工具:
本教學操作環境:windows10系統、GO 1.11.2、thinkpad t480電腦。
Go語言 是Google公司 在2007開發一種靜態強型別、編譯型語言,並在 2009 年正式對外發布。
golang(又稱go語言)是Google開發的一種靜態強型別、編譯型、並行型,並具有垃圾回收功能的程式語言。它是一款簡單的開源程式語言,它能讓構造簡單、可靠且高效的軟體變得容易。
Go語言可以在不損失應用程式效能的情況下極大的降低程式碼的複雜性,還可以發揮多核處理器同步多工的優點,並可解決物件導向程式設計的麻煩,並幫助程式設計師處理瑣碎但重要的記憶體管理問題,相比於其他程式語言,簡潔、快速、安全、並行、有趣、開源、記憶體管理、陣列安全、編譯迅速是其特色。
Go語言以其近C的執行效能和近解析型語言的開發效率,以及近乎於完美的編譯速度,已經風靡全球。很多人將Go語言稱為21世紀的C語言,因為Go不僅擁有C的簡潔和效能,而且針對多處理器系統應用程式的程式設計進行了優化,很好的提供了21世紀網際網路環境下伺服器端開發的各種實用特性。
事件起源於2007年9月,當時 C++委員會正在 Google 對 C++ 語言新增加的35個新的特性進行一場分享演講。
Google 的技術大神們也在認真聽講座,其中就有Go語言的三個創作者,分別是: Robert Griesemer(羅伯特.格利茨默),Rob Pike(羅伯.派克),Ken Thompson(肯.湯普森)。
Rob Pike(羅伯.派克)
羅布·派克是Unix的先驅,是最早和Ken Thompson以及 Dennis M. Ritche(C語言之父) 開發Unix的猛人,UTF-8的設計人。讓人佩服不已的是,羅伯伯還是1980年奧運會射箭的銀牌得主。
Ken Thompson(肯.湯普森)
Ken Thompson,C語言前身B語言的作者,與Dennis Ritchie是Unix的原創者。1983年圖靈獎得主以及1998年美國國家技術獎(National Medal of Technology)得主。
Robert Griesemer(羅伯特.格利茨默)
參與制作了Java的HotSpot編譯器以及Chrome瀏覽器的javascript的搜尋引擎V8。
隨著會議的中場休息,大家開始了對這些 C++ 語言新特性是否帶來更多的價值進行吐槽。Rob Pike他們認為:簡化語言的成就遠大於新增功能。於是,一門新的語言,Go,在這個思路下應運而生。
2007 年 9 月 25 號,Rob Pike在回家的路上得到關於新語言名字的靈感,於是給另外兩人發了郵件:
郵件正文大意為:
在開車回家的路上我得到了些靈感。
1.給這門程式語言取名為「go」,它很簡短,易書寫。工具類可以命名為:goc、 gol、goa。
互動式的偵錯工具也可以直接命名為「go」。語言檔案字尾名為 .go 等等
這就是 Go 語言名字的來源,自此之後 Robert、Rob 和 Ken 三個人開始在 Google 內部進行了研發,一直到了 2009 年,Go 正式開源了,Go 專案團隊將 2009 年 11 月 10 日,即該語言正式對外開源的日字作為其官方生日。原始碼最初託管在 http://code.google.com 上,之後幾年才逐步的遷移到 GitHub 上。
Go 1.0 — 2012 年 3 月:Go 的第一個版本,帶著一份相容性說明檔案來保證與未來發布版本的相容性,進而不會破壞已有的程式。
Go 1.1 — 2013 年 5 月:這個 Go 版本專注於優化語言(編譯器,gc,map,go 排程器)和提升它的效能。
Go 1.3 — 2014 年 6 月:這個版本對棧管理做了重要的改進。棧可以申請[連續的記憶體片段,提高了分配的效率
Go 1.4 — 2014 年 12 月:此版本帶來了官方對 Android 的支援,讓我們可以只用 Go 程式碼就能寫出簡單的 Android 程式。
Go 1.7 — 2016 年 8 月: 這個版本釋出了context 包,為使用者提供了處理超時和任務取消的方法。
Go 1.11 — 2018 年 8 月: Go 1.11 帶來了一個重要的新功能:Go modules。
使用Go的大型網際網路公司
Go語言的強項在於它適合用來開發網路並行方面的服務,比如訊息推播、監控、容器等,所以在高並行的專案上大多數公司會優先選擇 Golang 作為開發語言。另外一個應用就是對一些python,php或者java專案進行重構。【相關推薦:Go視訊教學】
程式語言是用來控制計算機的一系列指令(Instruction),它有固定的格式和詞彙(不同程式語言的格式和詞彙不一樣)。就像我們中國人之間溝通需要漢語,英國人溝通需要英語一樣,人與計算機之間進行溝通需要一門語言作為媒介,即程式語言。
程式語言的發展經歷了機器語言(指令系統)=>組合語言=>高階語言(C、java、Go
等)。
010010101001-》ADD
計算機是不能理解高階語言的,更不能直接執行高階語言,它只能直接理解機器語言,所以使用任何高階語言編寫的程式若想被計算機執行,都必須將其轉換成計算機語言,也就是機器碼。而這種轉換的方式分為編譯和解釋兩種。由此高階語言也分為編譯型語言和直譯語言。
使用專門的編譯器,針對特定的平臺,將高階語言原始碼一次性的編譯成可被該平臺硬體執行的機器碼,幷包裝成該平臺所能識別的可執行性程式的格式。
編譯型語言寫的程式執行之前,需要一個專門的編譯過程,把原始碼編譯成機器語言的檔案,如exe
格式的檔案,以後要再執行時,直接使用編譯結果即可,如直接執行exe
檔案。因為只需編譯一次,以後執行時不需要編譯,所以編譯型語言執行效率高。
1、一次性的編譯成平臺相關的機器語言檔案,執行時脫離開發環境,執行效率高;
2、與特定平臺相關,一般無法移植到其他平臺;
使用專門的直譯器對源程式逐行解釋成特定平臺的機器碼並立即執行。是程式碼在執行時才被直譯器一行行動態翻譯和執行,而不是在執行之前就完成翻譯。
1.直譯語言每次執行都需要將原始碼解釋稱機器碼並執行,執行效率低;
2.只要平臺提供相應的直譯器,就可以執行原始碼,所以可以方便源程式移植;
更多程式設計相關知識,請存取:!!
以上就是什麼是golang的詳細內容,更多請關注TW511.COM其它相關文章!