




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第1章Go語言及編程環(huán)境Go語言簡介01誕生背景誕生背景為應對新時代互聯(lián)網的應用程序需要,谷歌的羅伯特·格瑞史莫(RobertGriesemer)、羅布·派克(RobPike)和肯·湯普遜(KenThompson)于2007年9月開始著手設計一種全新的編程語言——Go語言,隨后IanLanceTaylor和RussCox加入該項目,新語言不僅原生支持并發(fā)多核編程、極大提升了編譯速度,而且徹底摒棄了傳統(tǒng)語言中很多復雜(并不實用)的語法。Go語言一經推出就廣受歡迎,于2009年11月開放源代碼,并在Linux及MacOSX平臺上進行了實現(xiàn),后來還追加了Windows系統(tǒng)下的實現(xiàn)。02設計哲學1.少即是多2.世界是組合的3.面向接口編程設計哲學(1)(2)(3)在編程領域也有一個所謂的“二八定律”,即:百分之八十的代碼僅使用到百分之二十的語言特性??梢姡瑔渭兊卦黾诱Z言特性并不能保證開發(fā)效率的提升,原因是它會增加復雜性,導致程序員更容易犯錯。遵循“二八定律”正如用一個方向盤就可以控制汽車行駛,就沒必要造具有多個方向盤甚至復雜方向變換系統(tǒng)的汽車。例如,Go語言只有for循環(huán),而不像其他語言那樣還有while、dowhile、foreach等多種循環(huán)語句,只提供一種方法做事情,把事情做到極致就好。做任何事只提供一種方法幾何上的正交指兩個向量垂直,現(xiàn)實中的正交是指多個因素的一個發(fā)生變化,不會影響其他因素。例如,Go語言中的協(xié)程、接口、類型系統(tǒng)之間是相互獨立(正交)的,但在編程中通過組合運用這些特性,卻可以極大地提升語言表現(xiàn)力,實現(xiàn)很多復雜的功能。提供正交的語言特性1.少即是多設計哲學2.世界是組合的Go語言的設計者從物質世界的構成模式得到啟發(fā),發(fā)現(xiàn)“組合”才是世間萬物最基本最常見的關系,而過往的以“繼承”為基礎的面向對象語言(典型如Java),在對事物的描述上存在根本的缺陷,類和對象更適合表現(xiàn)孤立的單個事物,一旦涉及多個事物間的復雜交互就會出現(xiàn)各種問題,為此Go語言設計者提出“組合優(yōu)于繼承”的觀點,采用組合的方式來描述對象之間的關系,更貼近真實的自然世界。Go沒有像Java一樣“宗教式”地完全面向對象,而是結合了面向過程、函數(shù)式設計及面向對象的優(yōu)點,其語法元素與C語言有相似之處,用結構體(struct)及其強大的類型系統(tǒng)來構建具有自身特色的面向對象體系,通過函數(shù)、接口、類型、閉包等元素的組合,能夠輕松地把大型程序的各個模塊巧妙地銜接運作起來。設計哲學3.面向接口編程Go語言編程是面向接口的,采用一種Duck模型,即類型(類)不再需要顯式地聲明自己實現(xiàn)了哪個(些)接口,接口類型的判斷完全交給底層語言編譯器去處理,這就將接口與其實現(xiàn)徹底地分開,形成了一種“面向接口”的全新編程方式。程序員無須在一開始就精心設計整個系統(tǒng)的接口繼承體系,而是先基于當下具體的某個應用需求局部設計實現(xiàn)一些小的接口,后續(xù)再根據需求變化和應用擴展的需要,通過已有接口的自由組合,構造出更抽象、更普適、功能更強的新接口,這使得Go程序的重構非常容易,尤其適合互聯(lián)網時代應用快速迭代的開發(fā)方式。03優(yōu)勢特性優(yōu)勢特性Go的優(yōu)勢特性主要體現(xiàn)在如下幾個方面。(1)Go的語法十分簡潔,僅僅用了25個關鍵字,是所有主流編程語言中關鍵字最少的。(2)Go語言支持垃圾回收;內置強大的類型系統(tǒng)支持各種復合數(shù)據類型,如關聯(lián)數(shù)組、切片、映射和列表等;內存安全,如內置數(shù)組邊界檢查,極大減少越界訪問帶來的安全隱患;還有大量的包和第三方庫的支持。(3)基于類似C的結構體(struct)以組合方式構建的面向對象系統(tǒng),不僅具備Java對象系統(tǒng)的所有功能,而且對問題域的描述和表現(xiàn)力更強,更貼近客觀真實的世界;內置接口類型,通過接口組合形成新的接口,非侵入式的接口機制徹底解除了接口與實現(xiàn)的耦合,便于快速重構和迭代開發(fā)大型應用系統(tǒng)。(4)Go在語言級別原生支持并發(fā),簡化了并發(fā)程序設計;基于通道和協(xié)程通信的并發(fā)機制相比傳統(tǒng)語言的線程機制效率更高,有利于充分發(fā)揮多核CPU的威力,為互聯(lián)網云時代微服務開發(fā)的首選語言。第1章Go語言及編程環(huán)境Go語言安裝與使用01平臺與版本平臺與版本Go是跨平臺的編程語言,在各主流操作系統(tǒng)平臺上都有對應的安裝包,訪問官網/dl/(Golang中國)可分別下載到Go在Windows、MacOSX、Linux平臺上的安裝包及源碼,如圖。02Windows平臺安裝Go語言1.下載Go語言編程環(huán)境2.安裝Go語言編程環(huán)境Windows平臺安裝Go語言1.下載Go語言編程環(huán)境在圖的頁面上點擊“MicrosoftWindows”區(qū)塊的鏈接下載Go的安裝包,得到的安裝包文件名為go1.20.4.windows-amd64.msi。2.安裝Go語言編程環(huán)境(1)雙擊下載得到的安裝包文件,啟動安裝向導如圖,單擊“Next”按鈕。Windows平臺安裝Go語言(2)在“End-UserLicenseAgreement”界面勾選“IacceptthetermsintheLicenseAgreement”接受許可條款,如圖,單擊“Next”按鈕。Windows平臺安裝Go語言(3)在“DestinationFolder”界面設置Go的安裝目錄,這個目錄是作為Go語言環(huán)境的GOROOT路徑,通常默認“C:\ProgramFiles\Go”,如圖,單擊“Next”按鈕。Windows平臺安裝Go語言(4)在下一個界面單擊“Install”按鈕開始安裝,界面進度條顯示安裝進度,完成后單擊“Finish”按鈕關閉向導,結束安裝。以管理員身份打開Windows命令行,輸入“goversion”,出現(xiàn)Go的版本信息就表示安裝成功,如圖。03第一個Go程序1.編寫Go程序2.運行Go程序第一個Go程序1.編寫Go程序【實例1.1】編寫第一個Go程序。打開Windows記事本,編寫程序代碼如下(hello.go):packagemain //(a)
import"fmt" //(b)
funcmain(){ //(c) fmt.Printf("Hello,我愛Go語言!@easybooks\n") //(d)}說明:(a)包聲明語句。在所有Go源程序文件頭部都要用一行“package包名”聲明其代碼所屬的包,Go通過包來管理和組織源代碼。(b)包導入語句?!癷mport"包名"”語句導入包,通常Go程序都要像這樣在開頭用一條或多條import語句導入一個或多個需要引用的外部包,可以是Go語言內置標準庫的包,也可以是第三方包或自定義的包。(c)入口函數(shù)。用func關鍵字聲明定義一個函數(shù),這里所聲明的main函數(shù)是Go程序的入口函數(shù),程序編譯后由此進入開始執(zhí)行。(d)“fmt.Printf("Hello,我愛Go語言!@easybooks\n")”調用標準輸入/輸出包的Printf函數(shù)輸出字符串,要輸出的字符串作為實參傳入Printf函數(shù),必須用雙引號("")括起來,注意這里不能用單引號。第一個Go程序2.運行Go程序在Windows命令行下運行Go程序有兩種方式。(1)gorun命令直接運行gorun命令直接編譯并執(zhí)行源碼中的main函數(shù)。打開命令行,用cd命令進入到GOPATH目錄,輸入命令:gorunhello.go立即看到程序輸出結果。第一個Go程序(2)gobuild命令生成可執(zhí)行文件運行gobuild命令會先將源碼編譯為可執(zhí)行(.exe)文件,然后由用戶運行該文件來執(zhí)行程序。在命令行GOPATH目錄中執(zhí)行命令:gobuildhello.go待命令執(zhí)行過后,去到GOPATH目錄下可以看到生成了一個hello.exe文件。運行文件hello.exe,直接輸入:hello.exe輸出同樣的結果。以上兩種方式運行Go程序的過程如圖。第1章Go語言及編程環(huán)境Go語言集成開發(fā)環(huán)境01常用集成開發(fā)環(huán)境常用集成開發(fā)環(huán)境可用于Go語言編程的集成開發(fā)環(huán)境很多,比較常用的如下。(1)GolandGoland是由著名的JetBrains公司推出的一個商業(yè)IDE,它整合IntelliJ平臺,提供了針對Go語言的編碼輔助和大量工具集成。(2)LiteIDELiteIDE是由國內開發(fā)者做出的一款專門針對Go語言的輕量級開發(fā)環(huán)境,它基于Qt、Kate和SciTE,包含了跨平臺開發(fā)及其它一些必要特性,對代碼編寫、自動補全和運行調試都有很好的支持,同時還包括了對源代碼的抽象語法樹視圖和一些內置工具。(3)SublimeText這是一個跨平臺的文本編輯器,支持編寫非常多的編程語言代碼,它通過一個叫GoSublime的插件來支持Go語言的代碼補全和程序模版創(chuàng)建。(4)GoClipseGoClipse是一個為Eclipse添加Go語言編程功能的插件,通過gocode來實現(xiàn)代碼補全,為初學者創(chuàng)造一個開發(fā)Go語言的環(huán)境,它依附于著名的Eclipse平臺,可以很容易地享有Eclipse本身所具有的諸多功能。(5)VSCodeVSCode是一款由微軟開發(fā)的跨平臺開源代碼編輯器,它使用JSON格式的配置文件進行所有功能和特性的配置,通過擴展程序為編輯器實現(xiàn)語法高亮、參數(shù)提示、編譯、調試、文檔生成等各種功能。02GoLand安裝與配置1.安裝2.初始啟動3.項目配置GoLand安裝與配置1.安裝(1)GoLand下載地址/go/,單擊官方主頁上的“Download”按鈕,轉到下載頁,點擊頁面上的“directlink”鏈接下載GoLand安裝包。(2)雙擊下載得到的安裝包goland-2023.1.2.exe,啟動GoLand安裝向導如圖,單擊“Next”按鈕。GoLand安裝與配置(3)在“ChooseInstallLocation”界面設置GoLand安裝目錄,單擊“Next”按鈕。(4)在“InstallationOptions”界面對GoLand安裝選項進行配置,如圖。為方便使用Go語言環(huán)境,建議選中全部選項,單擊“Next”按鈕。GoLand安裝與配置(5)在“ChooseStartMenuFolder”界面選擇(命名)要在其中創(chuàng)建程序快捷方式的開始菜單目錄(通常保持默認的“JetBrains”),單擊“Install”按鈕開始安裝,界面進度條顯示安裝進度,完成后在“CompletingGoLandSetup”界面確保選中了“Rebootnow”選項,單擊“Finish”按鈕關閉向導,如圖,系統(tǒng)會自動重啟,使所有的GoLand安裝選項生效。GoLand安裝與配置2.初始啟動(1)GoLand環(huán)境支持老用戶使用已有的配置,在初次啟動時會彈出如圖所示的對話框詢問是否導入已有設置,由于筆者計算機是第一次安裝GoLand,選“Donotimportsettings”,單擊“OK”按鈕。GoLand安裝與配置(2)GoLand是商業(yè)軟件,需要先激活才能使用。在如左圖所示的界面上選中“ActivateGoLand”、“Activationcode”,于下方文本區(qū)粘貼獲取到的激活碼,單擊“Activate”按鈕,激活成功后,在接下來的界面單擊“Continue”,出現(xiàn)歡迎界面如右圖所示。GoLand安裝與配置(3)GoLand界面默認背景是暗黑色,如果不習慣可以進行更改,操作方法是:點選歡迎界面左側“Customize”切換至環(huán)境定制選項頁,在“Colortheme”下拉列表中選擇“IntelliJLight”選項,界面背景立刻變?yōu)槭孢m的亮白色,如左圖所示。點選左側“Projects”又切換回歡迎界面,如右圖所示。
GoLand安裝與配置3.項目配置(1)創(chuàng)建Go項目點擊GoLand歡迎界面上的“NewProject”()圖標按鈕創(chuàng)建一個Go項目,出現(xiàn)“NewProject”界面,在“Location”欄設置項目保存路徑及給項目命名。項目默認保存在操作系統(tǒng)當前用戶的GolandProjects目錄下,第一次創(chuàng)建項目時GoLand會自動生成這個目錄,并給項目取默認名awesomeProject,如圖所示。GoLand安裝與配置(2)配置項目的Go環(huán)境項目的Go環(huán)境通過GOROOT與GOPATH兩個環(huán)境變量來配置,之前在安裝使用Go語言的時候對它們的意義已有所提及。GOROOT:Go語言本身(與所使用的開發(fā)工具無關)的安裝目錄,通常默認為“C:\ProgramFiles\Go”,當然在安裝Go語言時也可通過向導的“DestinationFolder”界面進行更改。GOPATH:這是Go程序編譯時參考的工作目錄,類似于Java的工作區(qū)(Workspace),由用戶自己創(chuàng)建或指定,筆者的是C:\Users\Administrator\go。開發(fā)時Go項目所要引用的第三方庫、框架及其他獨立的.go源文件都放在這個目錄(及其子目錄)下,以便Go編譯器能夠找到。GoLand安裝與配置GOPATH則需要用戶來設置,可以在一開始創(chuàng)建項目時就通過點選“NewProject”界面左側“Go(GOPAT
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 智能制造典型場景參考指引(2025版)
- 2025至2030年中國安徽省煤化工行業(yè)市場深度分析及投資策略研究報告
- 2025至2030年中國多寶魚養(yǎng)殖行業(yè)市場全景評估及發(fā)展戰(zhàn)略研究報告
- 2025至2030年中國碗柜行業(yè)發(fā)展監(jiān)測及投資前景預測報告
- 2025至2030年中國電梯平面廣告行業(yè)發(fā)展趨勢及投資前景預測報告
- 2025至2030年中國電子表行業(yè)市場全景分析及投資策略研究報告
- 不動產買賣合同解除協(xié)議
- 鋪面合作轉讓合同范本模板
- oemodm委托加工合同范本
- 廣東省深圳市2024-2025學年高一下學期期末調研考試歷史試題(含答案)
- 減速機檢修方案
- 高級政工師職稱面試題
- 2022年HJ1237機動車環(huán)檢作業(yè)指導書
- ISTA-3A(中文版)運輸-試驗標準
- 師德師風建設ppt課件、講稿
- (手冊)鐵總建設2017310號鐵路建設項目質量安全紅線管理規(guī)定-21
- 軍隊文職招聘(司機崗)近年考試真題題庫(含真題、典型題匯總)
- GA/T 383-2014法庭科學DNA實驗室檢驗規(guī)范
- 2023年禁毒社工招聘考試試題
- 醫(yī)院物業(yè)綠化服務方案
- (中職)美容美發(fā)實用英語unit1課件
評論
0/150
提交評論