Go語言程序設計及實例 課件 第1章 Go語言及編程環境_第1頁
Go語言程序設計及實例 課件 第1章 Go語言及編程環境_第2頁
Go語言程序設計及實例 課件 第1章 Go語言及編程環境_第3頁
Go語言程序設計及實例 課件 第1章 Go語言及編程環境_第4頁
Go語言程序設計及實例 課件 第1章 Go語言及編程環境_第5頁
已閱讀5頁,還剩33頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第1章Go語言及編程環境Go語言簡介01誕生背景誕生背景為應對新時代互聯網的應用程序需要,谷歌的羅伯特·格瑞史莫(RobertGriesemer)、羅布·派克(RobPike)和肯·湯普遜(KenThompson)于2007年9月開始著手設計一種全新的編程語言——Go語言,隨后IanLanceTaylor和RussCox加入該項目,新語言不僅原生支持并發多核編程、極大提升了編譯速度,而且徹底摒棄了傳統語言中很多復雜(并不實用)的語法。Go語言一經推出就廣受歡迎,于2009年11月開放源代碼,并在Linux及MacOSX平臺上進行了實現,后來還追加了Windows系統下的實現。02設計哲學1.少即是多2.世界是組合的3.面向接口編程設計哲學(1)(2)(3)在編程領域也有一個所謂的“二八定律”,即:百分之八十的代碼僅使用到百分之二十的語言特性。可見,單純地增加語言特性并不能保證開發效率的提升,原因是它會增加復雜性,導致程序員更容易犯錯。遵循“二八定律”正如用一個方向盤就可以控制汽車行駛,就沒必要造具有多個方向盤甚至復雜方向變換系統的汽車。例如,Go語言只有for循環,而不像其他語言那樣還有while、dowhile、foreach等多種循環語句,只提供一種方法做事情,把事情做到極致就好。做任何事只提供一種方法幾何上的正交指兩個向量垂直,現實中的正交是指多個因素的一個發生變化,不會影響其他因素。例如,Go語言中的協程、接口、類型系統之間是相互獨立(正交)的,但在編程中通過組合運用這些特性,卻可以極大地提升語言表現力,實現很多復雜的功能。提供正交的語言特性1.少即是多設計哲學2.世界是組合的Go語言的設計者從物質世界的構成模式得到啟發,發現“組合”才是世間萬物最基本最常見的關系,而過往的以“繼承”為基礎的面向對象語言(典型如Java),在對事物的描述上存在根本的缺陷,類和對象更適合表現孤立的單個事物,一旦涉及多個事物間的復雜交互就會出現各種問題,為此Go語言設計者提出“組合優于繼承”的觀點,采用組合的方式來描述對象之間的關系,更貼近真實的自然世界。Go沒有像Java一樣“宗教式”地完全面向對象,而是結合了面向過程、函數式設計及面向對象的優點,其語法元素與C語言有相似之處,用結構體(struct)及其強大的類型系統來構建具有自身特色的面向對象體系,通過函數、接口、類型、閉包等元素的組合,能夠輕松地把大型程序的各個模塊巧妙地銜接運作起來。設計哲學3.面向接口編程Go語言編程是面向接口的,采用一種Duck模型,即類型(類)不再需要顯式地聲明自己實現了哪個(些)接口,接口類型的判斷完全交給底層語言編譯器去處理,這就將接口與其實現徹底地分開,形成了一種“面向接口”的全新編程方式。程序員無須在一開始就精心設計整個系統的接口繼承體系,而是先基于當下具體的某個應用需求局部設計實現一些小的接口,后續再根據需求變化和應用擴展的需要,通過已有接口的自由組合,構造出更抽象、更普適、功能更強的新接口,這使得Go程序的重構非常容易,尤其適合互聯網時代應用快速迭代的開發方式。03優勢特性優勢特性Go的優勢特性主要體現在如下幾個方面。(1)Go的語法十分簡潔,僅僅用了25個關鍵字,是所有主流編程語言中關鍵字最少的。(2)Go語言支持垃圾回收;內置強大的類型系統支持各種復合數據類型,如關聯數組、切片、映射和列表等;內存安全,如內置數組邊界檢查,極大減少越界訪問帶來的安全隱患;還有大量的包和第三方庫的支持。(3)基于類似C的結構體(struct)以組合方式構建的面向對象系統,不僅具備Java對象系統的所有功能,而且對問題域的描述和表現力更強,更貼近客觀真實的世界;內置接口類型,通過接口組合形成新的接口,非侵入式的接口機制徹底解除了接口與實現的耦合,便于快速重構和迭代開發大型應用系統。(4)Go在語言級別原生支持并發,簡化了并發程序設計;基于通道和協程通信的并發機制相比傳統語言的線程機制效率更高,有利于充分發揮多核CPU的威力,為互聯網云時代微服務開發的首選語言。第1章Go語言及編程環境Go語言安裝與使用01平臺與版本平臺與版本Go是跨平臺的編程語言,在各主流操作系統平臺上都有對應的安裝包,訪問官網/dl/(Golang中國)可分別下載到Go在Windows、MacOSX、Linux平臺上的安裝包及源碼,如圖。02Windows平臺安裝Go語言1.下載Go語言編程環境2.安裝Go語言編程環境Windows平臺安裝Go語言1.下載Go語言編程環境在圖的頁面上點擊“MicrosoftWindows”區塊的鏈接下載Go的安裝包,得到的安裝包文件名為go1.20.4.windows-amd64.msi。2.安裝Go語言編程環境(1)雙擊下載得到的安裝包文件,啟動安裝向導如圖,單擊“Next”按鈕。Windows平臺安裝Go語言(2)在“End-UserLicenseAgreement”界面勾選“IacceptthetermsintheLicenseAgreement”接受許可條款,如圖,單擊“Next”按鈕。Windows平臺安裝Go語言(3)在“DestinationFolder”界面設置Go的安裝目錄,這個目錄是作為Go語言環境的GOROOT路徑,通常默認“C:\ProgramFiles\Go”,如圖,單擊“Next”按鈕。Windows平臺安裝Go語言(4)在下一個界面單擊“Install”按鈕開始安裝,界面進度條顯示安裝進度,完成后單擊“Finish”按鈕關閉向導,結束安裝。以管理員身份打開Windows命令行,輸入“goversion”,出現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)包導入語句。“import"包名"”語句導入包,通常Go程序都要像這樣在開頭用一條或多條import語句導入一個或多個需要引用的外部包,可以是Go語言內置標準庫的包,也可以是第三方包或自定義的包。(c)入口函數。用func關鍵字聲明定義一個函數,這里所聲明的main函數是Go程序的入口函數,程序編譯后由此進入開始執行。(d)“fmt.Printf("Hello,我愛Go語言!@easybooks\n")”調用標準輸入/輸出包的Printf函數輸出字符串,要輸出的字符串作為實參傳入Printf函數,必須用雙引號("")括起來,注意這里不能用單引號。第一個Go程序2.運行Go程序在Windows命令行下運行Go程序有兩種方式。(1)gorun命令直接運行gorun命令直接編譯并執行源碼中的main函數。打開命令行,用cd命令進入到GOPATH目錄,輸入命令:gorunhello.go立即看到程序輸出結果。第一個Go程序(2)gobuild命令生成可執行文件運行gobuild命令會先將源碼編譯為可執行(.exe)文件,然后由用戶運行該文件來執行程序。在命令行GOPATH目錄中執行命令:gobuildhello.go待命令執行過后,去到GOPATH目錄下可以看到生成了一個hello.exe文件。運行文件hello.exe,直接輸入:hello.exe輸出同樣的結果。以上兩種方式運行Go程序的過程如圖。第1章Go語言及編程環境Go語言集成開發環境01常用集成開發環境常用集成開發環境可用于Go語言編程的集成開發環境很多,比較常用的如下。(1)GolandGoland是由著名的JetBrains公司推出的一個商業IDE,它整合IntelliJ平臺,提供了針對Go語言的編碼輔助和大量工具集成。(2)LiteIDELiteIDE是由國內開發者做出的一款專門針對Go語言的輕量級開發環境,它基于Qt、Kate和SciTE,包含了跨平臺開發及其它一些必要特性,對代碼編寫、自動補全和運行調試都有很好的支持,同時還包括了對源代碼的抽象語法樹視圖和一些內置工具。(3)SublimeText這是一個跨平臺的文本編輯器,支持編寫非常多的編程語言代碼,它通過一個叫GoSublime的插件來支持Go語言的代碼補全和程序模版創建。(4)GoClipseGoClipse是一個為Eclipse添加Go語言編程功能的插件,通過gocode來實現代碼補全,為初學者創造一個開發Go語言的環境,它依附于著名的Eclipse平臺,可以很容易地享有Eclipse本身所具有的諸多功能。(5)VSCodeVSCode是一款由微軟開發的跨平臺開源代碼編輯器,它使用JSON格式的配置文件進行所有功能和特性的配置,通過擴展程序為編輯器實現語法高亮、參數提示、編譯、調試、文檔生成等各種功能。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語言環境,建議選中全部選項,單擊“Next”按鈕。GoLand安裝與配置(5)在“ChooseStartMenuFolder”界面選擇(命名)要在其中創建程序快捷方式的開始菜單目錄(通常保持默認的“JetBrains”),單擊“Install”按鈕開始安裝,界面進度條顯示安裝進度,完成后在“CompletingGoLandSetup”界面確保選中了“Rebootnow”選項,單擊“Finish”按鈕關閉向導,如圖,系統會自動重啟,使所有的GoLand安裝選項生效。GoLand安裝與配置2.初始啟動(1)GoLand環境支持老用戶使用已有的配置,在初次啟動時會彈出如圖所示的對話框詢問是否導入已有設置,由于筆者計算機是第一次安裝GoLand,選“Donotimportsettings”,單擊“OK”按鈕。GoLand安裝與配置(2)GoLand是商業軟件,需要先激活才能使用。在如左圖所示的界面上選中“ActivateGoLand”、“Activationcode”,于下方文本區粘貼獲取到的激活碼,單擊“Activate”按鈕,激活成功后,在接下來的界面單擊“Continue”,出現歡迎界面如右圖所示。GoLand安裝與配置(3)GoLand界面默認背景是暗黑色,如果不習慣可以進行更改,操作方法是:點選歡迎界面左側“Customize”切換至環境定制選項頁,在“Colortheme”下拉列表中選擇“IntelliJLight”選項,界面背景立刻變為舒適的亮白色,如左圖所示。點選左側“Projects”又切換回歡迎界面,如右圖所示。

GoLand安裝與配置3.項目配置(1)創建Go項目點擊GoLand歡迎界面上的“NewProject”()圖標按鈕創建一個Go項目,出現“NewProject”界面,在“Location”欄設置項目保存路徑及給項目命名。項目默認保存在操作系統當前用戶的GolandProjects目錄下,第一次創建項目時GoLand會自動生成這個目錄,并給項目取默認名awesomeProject,如圖所示。GoLand安裝與配置(2)配置項目的Go環境項目的Go環境通過GOROOT與GOPATH兩個環境變量來配置,之前在安裝使用Go語言的時候對它們的意義已有所提及。GOROOT:Go語言本身(與所使用的開發工具無關)的安裝目錄,通常默認為“C:\ProgramFiles\Go”,當然在安裝Go語言時也可通過向導的“DestinationFolder”界面進行更改。GOPATH:這是Go程序編譯時參考的工作目錄,類似于Java的工作區(Workspace),由用戶自己創建或指定,筆者的是C:\Users\Administrator\go。開發時Go項目所要引用的第三方庫、框架及其他獨立的.go源文件都放在這個目錄(及其子目錄)下,以便Go編譯器能夠找到。GoLand安裝與配置GOPATH則需要用戶來設置,可以在一開始創建項目時就通過點選“NewProject”界面左側“Go(GOPAT

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論