我的全棧之路-Go語言基礎之Go語言概述與開發環境搭建
- 1.1 信息技術發展趨勢
- 1.2 淺談計算機系統架構
- 1.3 程序和指令
- 1.4 計算機編程語言發展史
- 1.5 程序的編譯和解釋
- 1.6 計算機語言應用場景
- 1.7 Go語言概述
- 1.8 Go語言開發環境搭建(macOS版)
- 1.9 使用Visual Studio Code開發Go程序
- 1.10 GoLand開發Go程序(macOS版)
- 1.11 注釋
1.1 信息技術發展趨勢
目前信息技術主要經歷了互聯網、移動互聯網以及以大數據、雲計算、物聯網、人工智能、區塊鏈等為代表的新興技術三個階段。
-
互聯網
互聯網自從20世紀90年代逐漸興起,主要是通過網絡連接了世界各地的PC機,筆記本以及背后提供數據服務的大型服務器集群。
其中絕大多數PC機都運行着Windows,macOS操作系統,而服務器主要是以類Unix(CentOS,Ubuntu)占據主要市場。
依靠互聯網成長起來的公司有Apple、Google、Amazon、Microsoft、Baidu、Alibaba、Tencent。 -
移動互聯網
移動互聯網主要從2010開始爆發式增長,主要是通過網絡連接了世界各地的移動設備(最典型的就是手機),它們絕大多數都運行着Android,iOS操作系統。
依靠移動互聯網成長起來的公司有字節跳動、螞蟻金服、小米、美團、滴滴。 -
大數據、雲計算
隨着用戶的爆發式增長,以海量數據為基礎的大數據、雲計算技術在Google、Amazon、Apple、Baidu、Alibaba、Tencent等大型互聯網公司有着廣泛的商業應用場景。 -
物聯網
物聯網會以手機作為中樞,通過物聯網連接所有的智能設備,包括智能家居、汽車、電視等嵌入式設備,目前國內的小米、華為等在智能家居、電視、汽車等領域廣泛布局,2019年8月華為發布了鴻蒙系統。 -
人工智能
人工智能(AI)作為當前最火爆的技術,國內的Baidu、Tencent、Alibaba等互聯網公司逐漸根據自身的核心業務開始布局,Alibaba最早將人工智能技術布局在電商和物流領域,而Baidu開發出了對話式人工智能操作系統Dueros和自動駕駛平台Apollo,Tencent則是在游戲領域應用人工智能。 -
區塊鏈
區塊鏈經歷了數字貨幣、智能合約和超級賬本三個階段,區塊鏈技術可以廣泛使用在金融、供應鏈、物流、公共服務等領域,解決互聯網的信任問題,目前螞蟻金服、京東已經有大量的區塊鏈應用落地。
1.2 淺談計算機系統架構
1.2.1 計算機系統架構概述
計算機是一種用於高速計算的電子機器,可以進行數值運算、邏輯判斷,還有存儲記憶功能,且能夠通過編寫程序實現來自動、高速的處理數據。
計算機系統由硬件系統和軟件系統組成,由軟硬件共同協作完成人們日常生活和工作中的各種任務:
- 微信聊天:微信監聽鍵盤輸入的數據,並放到內存,然后傳給網卡,通過網絡傳遞給另外一個網卡,再從網卡傳遞到內存,顯示在顯示器上。
- QQ音樂:QQ音樂將音樂數據加載到內存上,然后寫到聲卡上。
- 騰訊視頻:應用程序將視頻數據加載到內存,然后寫到顯卡上。
- Office寫文檔:Office將內存中的數據寫入到磁盤上。
- Office讀文檔:Offcice將磁盤的數據加載到內存,然后顯示在屏幕上。
1.2.2 計算機硬件系統
現在計算機是由運算器、控制器、存儲器、輸入設備和輸出設備五大部分組成,它們各司其職,完成了數據的計算、存儲、傳輸等常見任務。
-
CPU
CPU也就是中央處理器,由運算器和控制器所組成,其作用是從內存中獲取指令並執行后將結果返回給內存或寫入磁盤和控制其他設備協同工作。 -
內存
內存是采用編址存儲,其主要作用是作為程序的工作區,程序運行時會將指令和數據都加載到內存,內存中的數據斷電后會丟失,用於臨時存儲小容量數據。 -
硬盤
硬盤是用於永久存儲海量數據,按照讀寫性能不同分為機械硬盤和固態硬盤兩大類。 -
IO設備
IO設備用於數據的輸入和輸出,其中常見的輸入設備包含鼠標、鍵盤,常見的輸出設備包括聲卡、顯卡。
網卡也是屬於IO設備的一種,主要用於網絡上的數據接收和發送。
在后期程序排查錯誤時除了要考慮程序本身的錯誤以外,還要考慮計算機硬件故障,例如內存不足,磁盤寫滿,網絡不通等問題
每個計算機組件的IO性能也各不相同,CPU、內存、磁盤都遵循容量越大、IO性能越差的特點。
在后期優化程序時需要考慮程序時間復雜度和空間復雜度的問題。
1.2.3 計算機軟件系統
軟件的出現實現了人和計算機更好的交互,它是由開發人員采用某種編程語言(C/C++/Java等等)編寫的一系列指令以及不同業務場景產生的數據組成。
通常將軟件分為系統軟件和應用軟件
系統軟件:驅動程序、操作系統、語言處理程序等都是屬於系統軟件。
驅動程序是硬件廠商使用編程語言(C/C++)編寫的程序,在使用硬件(例如打印機、顯卡等等)前必須安裝對應的驅動程序。
操作系統是負責通過驅動程序管理硬件資源,同時給應用軟件提供運行平台,目前主流的操作系統有Windows,Linux,macOS,Android,iOS。
語言處理程序是用於將編程語言編寫的源程序編譯或者解釋成對應平台的機器語言。
應用軟件:微信、支付寶、淘寶、Office都是屬於應用軟件,它們都是運行在操作系統之上的。
運行在不同操作系統之上的軟件交互方式也不一樣,Linux上的軟件通常是使用字符界面的交互方式,運行在Windows,macOS上的軟件通常是以鼠標、鍵盤操作的交互方式,運行在Android,iOS上的軟件通常是以手勢觸控、語音等交互方式。
1.3 程序和指令
程序是為了完成某項任務(例如聊天、聽音樂)而使用某種編程語言(例如C/C++)編寫的一組指令序列。
而指令是計算機程序控制的最小單位,由操作碼和操作數組成,操作碼是計算機要執行什么操作,例如加減乘除操作,而操作數具體執行的對象,具體的數據以及數據的位置。
所有指令的集合稱為指令系統,常見的PC機指令系統有Intel X86指令集,常見的手機指令系統有ARM,因此手機上的程序不加修改是不能直接在PC機上運行,因為不同的指令集是不兼容的。
那么計算機是如何處理程序的?
根據馮諾依曼計算機結構的原理,計算機的工作流程大致如下
- 當用戶從計算機中打開程序時(鼠標點擊桌面的快捷方式圖標),程序開始執行。
- 操作系統將程序的內容和相關的數據傳送到內存中。
- CPU根據程序內容從內存中讀取指令。
- CPU分析、處理指令,並為下一條指令做准備
- 取下一條指令並分析、處理,如此重復操作,直到執行完程序中的全部指令,最后將計算的結果放到指令指定的存儲器地址中。
以網易雲音樂播放音樂為例子
- 用戶雙擊網易雲應用程序播放音樂
- 網易雲應用程序的指令和數據加載到內存
- CPU從內存中讀取並分析指令然后通過操作系統調用驅動程序
- 驅動程序調用聲卡播放音樂
1.4 計算機編程語言發展史
任何事物都是從無到有,逐步發展壯大起來的,編程語言也是一樣。
計算機程序設計語言經歷了機器語言到匯編語言和高級程序設計語言三個階段,其特點是使得程序員用編程語言開發、測試、部署應用程序越來越方便、高效。但是是以犧牲效率為代價,但是隨着計算機硬件的發展,絕大多數應用場景的效率損失可以忽略不計。
- 機器語言
計算機發展的最早期,程序員編寫程序采用二進制的指令(010010101)來實現的,而每種CPU都有各自不同的指令系統(Ultra SPARC/Intel X86/ARM),因此在不同的機器上使用不同的機器語言實現。其特點是性能特別高效,而面向機器編程也就意味着不能移植,需要手動處理底層硬件的差異性,而且二進制的指令難以理解和維護。 - 匯編語言
隨着時代和計算機技術的發展,匯編語言和編譯器的出現解決了機器語言需要記住非常多的二進制機器指令的難題,但是還是沒有從根本上解決移植性的問題,只是將機器指令轉換為易懂的英文單詞,然后由編譯器編譯成機器指令,因為計算機終歸揭底只能識別二進制的0001110100110機器指令,而且匯編語言是面向機器的,不同機器(SPARC/Intel X86/ARM)的匯編指令是不相同的。 - 高級程序設計語言
高級程序設計語言的高級之處體現在開發人員在編寫程序時無需關心計算機底層硬件差異而只需要專注於業務模塊實現即可。甚至是可以實現 一次編譯,到處運行,這里以Java為例子:通過實現不同平台的JVM,編譯生成的字節碼文件可以在任意的JVM上運行。
高級語言主要分為面向過程和面向對象兩種,其中典型的面向過程編程語言就是C,面向對象的編程語言有Java,C++等等。
高級語言通常都需要編譯器或者是解釋器將源碼編譯或者解釋后執行。
1.5 程序的編譯和解釋
由於高級編程語言和計算機底層語言是互不相通的,計算機最底層只能識別01010這種二進制的機器指令,因此需要使用工具進行語言之間的轉換。這個就是程序編譯或者解釋的由來。
為了理解程序編譯和程序解釋,這里引入兩種語言,分別是高級計算機語言L1,以及低級計算機語言L0。
-
程序編譯
開發人員使用高級編程語言L1編寫的應用程序通過編譯器生成成計算機底層能夠識別的低級語言L0,L0就是計算機實際執行的語言,而編譯器生成的計算機底層識別的二進制機器指令過程就是程序編譯。常見的編譯型語言有C/C++/Objective-C/Go -
程序解釋
首先使用L0語言實現另外一個程序,也就是解釋器,然后將開發人員使用高級語言L1編寫的應用程序作為輸入,每一句L1編寫的程序都會在L0中作為等價的轉換然后執行,解釋的過程就是由L0編寫的解釋器去解釋L1程序。常見的解釋型語言有PHP,Python,JavaScript。
而Java和C#屬於編譯+解釋型語言,以Java為例子,Java程序在運行之前首先被編譯成Java字節碼,然后在JVM虛擬機上解釋運行。
1.6 計算機語言應用場景
如果想知道目前主流的編程語言有哪些,可以訪問tiobe 首頁獲取編程語言排行榜。
2019年9月編程語言排行榜Top20
根據Tiobe排行榜得知,Java/C/Python分別排在前三名, 隨后緊跟着C++,C#,JavaScript等等。
每種編程語言都有自己擅長的應用場景。
編程語言 | 應用場景 |
---|---|
C | 硬件驅動、操作系統、系統軟件 |
C++ | 系統軟件、網絡通訊、科學計算 、游戲 |
C# | Windows應用,Web應用、游戲 |
Java | 大型互聯網應用(淘寶、天貓),Android,大數據 |
Go | 高並發、區塊鏈、微服務 |
Kotlin | Android應用開發 |
Swift | macOS,iPhone,iPad應用開發 |
Python | 人工智能、機器學習、自動化運維、數據分析 、圖形處理 |
JavaScript | 瀏覽器端、服務端、PC桌面 |
Scala | 大數據開發 |
那么如果你作為初學者,面對如此之多的編程語言,到底應該先從哪門語言上車呢?如果你想深入的學習其他語言和架構相關的知識之前建議熟練掌握C語言。因為C++/Java/C#等編程語言都模仿了C語言。無論哪種語言,都是實現目標的工具,而不是目標本身。
而不出意外的話,我的全棧之路系列會覆蓋上述的十種編程語言,目的是實現全平台開發,帶領大家一起學習,逐步成長為開發工程師。
1.7 Go語言概述
Go語言(又稱Golang)是Google開發的一種靜態強類型、編譯型、並發型,並具有垃圾回收功能的編程語言。
2007年9月羅伯特·格瑞史莫(Robert Griesemer),羅勃·派克(Rob Pike)及肯·湯普遜(Ken Thompson)開始設計Go,稍后Ian Lance Taylor、Russ Cox加入項目。
Go是基於Inferno操作系統所開發的。Go於2009年11月正式宣布推出,成為開放源代碼項目,並在Linux及Mac OS X平台上進行了實現,后來追加了Windows系統下的實現。並在2012年推出1.0版本,自那時候起大量的開源項目使用Go語言進行開發,例如容器領域的Docker,Kubernetes,區塊鏈領域的Ethereum和Fabric都是使用GO語言構建的等等。
在2016年,Go被軟件評價公司TIOBE 選為“TIOBE 2016 年最佳語言”。 目前,Go每半年發布一個二級版本(即從a.x升級到a.y)。
Go語言被稱為21世紀的C語言,有着開源、跨平台、運行速度快(相對於Java,Python),簡單易學(相對於C/C++),功能強大(可嵌套C語言),語言層面支持並發等特點被廣泛用於區塊鏈開發、大數據開發、雲計算開發、服務器開發、Web開發等領域。
1.8 Go語言開發環境搭建(macOS版)
1.8.1 Go語言編譯器下載
在開發Go語言的程序之前,首先去官網 golang.google.cn下載Go語言的編譯器,編譯器的作用就是將開發人員使用Go語言針對Go編譯器編寫的Go程序編譯成對應平台的機器指令。因為計算機無法識別開發人員編寫的程序,需要借助Go編譯器來將源程序編譯成計算機識別的二進制機器指令。
golang官網提供了Windows,Linux,macOS版本的Go語言編譯下載
當點擊Download Go后,會跳轉到各個版本的Go語言編譯器下載,同學們可以針對自己的操作系統選擇對應的Go語言編譯器版本
如果是macOS可以選擇下載go1.12.9.darwin-amd64.pkg文件
當點擊下載鏈接后Chrome會自動下載go編譯器
當下載完成以后Chrome會提示這種類型的文件可能會損害您的計算機,這里選擇保留和仍然保留下載的文件
1.8.2 Go語言編譯器安裝
Go語言編譯器下載完成之后便可以進行安裝了,這里直接在Chrome瀏覽器中打開之前下載的安裝文件go1.12.9.darwin-amd64.pkg
選擇安裝類型后,系統會提示輸入密碼,如果有TouchID,直接使用TouchID即可
安裝進行中
安裝成功
當點擊關閉窗口時,系統會提示"您要將Go安裝器移除到廢紙簍嗎?"
如果你想保留點擊保留即可,否則移除到廢紙簍,下次安裝時去官網下載即可。
安裝完成以后可以使用終端軟件(例如iTerm)中輸入go version查看Go編譯器的版本信息
1.8.3 配置GOPATH
如果想要查看Go語言所有相關的環境變量,可以使用go env命令查看
其中我們需要關注的是GOPATH和GOROOT,其中GOROOT是go語言編譯器的安裝路徑,GOPATH是開發人員編寫Go程序的工作空間,也就是存放Go代碼的地方,普通用戶(例如liuguanglei)登錄默認的值是/Users/liuguanglei/go,如果是root用戶登錄,默認的GOPATH是/var/root/go,這也就意味着Go編譯器編譯時默認會在該路徑下查找Go源程序,這里通過修改/etc/profile文件實現自定義GOPATH。
首先使用su root 命令並輸入密碼切換到root用戶下
然后使用vim命令編譯/etc目錄下的profile文件
sh-3.2# vim /etc/profile
此時vim處於閱讀模式,如果想要修改profile文件的內容,按鍵 "i"便可進入編輯模式
然后添加GOPATH的環境變量配置
export GOPATH=/Users/liuguanglei/Documents/workspace/go
export PATH=$PATH:$GOPATH
添加完成以后,按esc退出編輯模式,然后輸入wq!保存之前的修改,此時添加的GOPATH環境變量實際上還沒有生效,使用source命令讓之前的修改生效即可
sh-3.2# source /etc/profile

然后無論是普通用戶登錄還是root用戶登錄,使用go env GOPATH查看環境變量都是在/Users/liuguanglei/Documents/workspace/go目錄下
1.9 使用Visual Studio Code開發Go程序
1.9.1 macOS安裝Visual Studio Code
在安裝Go編譯器並配置好GOPATH之后,便可以進行Go程序的開發了。
Go源程序可以使用任意的文本編輯器開發,我這里采用Visual Studio Code來開發Go程序
首先去Visual Studio Code的官網下載並安裝,官網提供了各個操作系統的版本下載。
下載之后將VSCode-darwin-stable.zip包解壓后將Visual Studio Code拖放到“應用程序”文件夾即可使用了。
下載VisualStudio Code,macOS默認的路徑為"下載"
解壓VSCode-darwin-stable.zip
拖放Visual Studio Code到應用程序文件夾
安裝完成以后便可以從LaunchPad啟動Visual Studio Code
Visual Studio Code啟動界面
1.9.2 Go語言HelloWorld
在啟動Visual Studio Code之后,首先打開之前的GOPATH對應的目錄
然后在該目錄下編寫第一個Go程序:helloworld.go
package main
import "fmt"
func main(){
fmt.Println("macOS & Go 1.12.9 & Visual Studo Code")
}
編寫完成以后可以在終端上使用go build編譯該程序
liuguangleideMacBook-Pro:~ liuguanglei$ cd Documents/workspace/go/
liuguangleideMacBook-Pro:go liuguanglei$ go build helloworld.go
liuguangleideMacBook-Pro:go liuguanglei$ ./helloworld
macOS & Go 1.12.9 & Visual Studo Code

helloworld.go編譯默認生成和源文件同名的可執行文件helloworld,然后使用./helloworld就可以運行編譯
也可以直接使用go run命令直接運行源文件,該命令不會生成可以執行文件helloworld
liuguangleideMacBook-Pro:go liuguanglei$ go run helloworld.go
macOS & Go 1.12.9 & Visual Studo Code

1.9.3 Visual Studio Code 集成Go插件
使用Visual Studio Code編寫Go程序未安裝插件時,源文件中編寫代碼沒有智能提示,而且還需要通過外部的終端程序(例如iTerm)來編譯運行Go程序。
首先切換到Visual Studio Code的擴展插件視圖(快捷鍵Command+Shift+x),然后在搜索欄中搜索go插件安裝即可。
插件安裝完成之后,編寫Go代碼就會有智能提示了。
而且visual studio code自帶了終端,可以直接在自帶的終端來編譯運行Go程序。
1.10 GoLand開發Go程序(macOS版)
1.10.1 GoLand介紹
GoLand是Jetbrains公司推出專為Go開發人員構建的跨平台IDE,可以運行在Windows,Linux,macOS系統之上,除了核心Go開發之外,它還支持JavaScript,TypeScript,NodeJS,SQL,數據庫,Docker,Kubernetes和Terraform。總而言之,這些功能使其完美地適用於任何任務,無論是現代Web應用程序還是DevOps工具。
GoLand為Git,GitHub和Mercurial提供開箱即用的支持。用戶可安裝的插件支持Perforce,ClearCase和其他插件。
GoLand豐富的生態系統包括1000多個插件,可用於根據您的特定需求定制IDE。根據您的喜好自定義,擴展和更改所有內容:從添加對Angular和Vue.js項目的支持,或獲取Nyan Cat進度條,到設置完全不同的IDE主題。
1.10.2 GoLand安裝
首先去官網下載GoLand
當點擊下載之后,網站會檢測當前瀏覽器用戶對應的操作系統版本,然后下載對應操作系統版本的GoLand,目前最新版本的GoLand是2019.2.1。
下載完成之后便可以進行安裝了,點擊下載的goland-2019.2.1.dmg文件
然后將GoLand拖放到Applications文件夾即可。
如果想要完全卸載GoLand,可以刪除如下的目錄
~/Library/Preferences/
~/Library/Caches/
~/Library/Application Support/
~/Library/Logs/
1.10.3 GoLand首次啟動設置
首先從啟動台中啟動GoLand
導入GoLand設置從其他來源
如果之前安裝過其他版本的GoLand,可以選擇Config or installation folder,選擇其他版本的GoLand配置。
我這里已經把之前安裝的GoLand完全刪除了,所以選擇Do not import settings
因為GoLand是收費的IDE,同時也提供了30天免費試用的方式。如果經濟能力允許的話,可以從指定渠道購買正版GoLand.
GoLand提供了Jetbrains Account,Activition Code和License Server三種激活方式,使用前必須激活或者選擇免費試用
當激活或者選擇免費試用之后便會啟動GoLand
1.10.4 GoLand開發Go程序
當GoLand啟動后,便可以使用它來編寫Go程序了。
首先選擇New Project創建一個項目
設置項目路徑和GOROOT
GoLand會自動創建項目
然后創建一個多級目錄
鼠標選中go-core,然后右鍵菜單,選擇New->Directory,依次創建net/ittimeline/go/core/foundational/object
再創建Go File
創建helloworld.go,選擇Simple Applciaiton
編寫helloworld.go
package main
import "fmt"
/* @author liuguanglei ittimelinedotnet@gmail.com @version 2019/10/12 9:55 下午 @since Go1.12.9 */
func main() {
fmt.Println("mac0S10.14.6 & Go1.12.9 & GoLand 2019.2.1 With Hello World")
}
程序說明
- package main 表示定義一個包,main是可執行程序的包名,所有的Go源文件頭部必須要要有一個包聲明語句,Go通過包來管理命名空間
- import "fmt"表示引用一個外部的包fmt,import可以是標准庫的包,也可以使第三方或者自定義的包,fmt是標准輸入輸出包
- func關鍵字定義一個函數,函數名為main,main代表Go程序的入口
- fmt.Println()是fmt包中的Println函數,函數的實參是一個字符串字面量,在標准輸出(即控制台終端)上輸出mac0S10.14.6 & Go1.12.9 & GoLand 2019.2.1 Hello World
Go源程序特征
- 源程序以.go為后綴
- 源程序默認為UTF-8編碼
- 標識符區分大小寫
- 語句結尾的分號可以省略
- 函數以func開頭,函數體開頭的"{"必須在函數頭所在行尾部,不能單獨起一行
- 字符串字面量使用""括起來
- 調用包里面的方法通過包名.方法名實現,例如fmt.Println
- main函數所在的包必須是main包
運行Go程序
首次運行可以點擊main方法的運行圖標運行,或者鼠標右鍵Run運行。
后續可以點擊右上角的運行圖標運行。
如果你喜歡黑色的主題,可以通過Command+,進入設置,然后在Apperance選項上設置Theme為Darcula即可。
1.10.5 GoLand集成GitHub
為了方便項目的版本控制,可以使用GoLand集成GitHub,將代碼上傳至GitHub。
首先需要去GitHub官網注冊一個賬號,然后在GoLand中添加注冊的賬號信息。
找到Settings菜單,然后在搜索欄中搜索GitHub
然后輸入GitHub賬號
登錄成功之后會顯示GitHub賬號以及頭像信息
在將項目提交到GitHub之前,還要添加兩個文件:README.md和.gitignore,它們都位於go-core目錄下,README.md用於項目描述,支持markdown語法,后期再補充項目詳細描述。
# Go語言核心編程
.gitignore是項目提交至GitHub時過濾某些文件
.gitignore
# Created by .ignore support plugin (hsz.mobi)
### Go template
# Binaries for programs and plugins
*.exe
*.exe~
*.dll
*.so
*.dylib
# Test binary, built with `go test -c`
*.test
# Output of the go coverage tool, specifically when used with LiteIDE
*.out
.idea
# Dependency directories (remove the comment below to include it)
# vendor/
然后可以使用菜單VCS->Import into Version Control->Share Project on GitHub將項目上傳至GitHub
填寫項目說明然后點擊Share
選擇要提交的文件以及設置提交信息,然后單擊Add
此時默認會將代碼提交到遠程的master分支上,可以使用瀏覽器訪問項目
1.11 注釋
注釋(Comment)是用於描述程序的文字信息,Go中的注釋分為單行注釋和多行注釋兩種
- 單行注釋:注釋一行內容,使用//表示,通常在方法內使用,快捷鍵Command+/
- 多行注釋 注釋多行內容, 使用
/**/
表示,通常在方法內部使用,多行注釋不能嵌套,否則會發生編譯錯誤
在日常開發中應該多寫注釋,便於程序后期維護,而在程序調試的過程中,也可以通過注釋部分代碼來調試程序,注釋的內容在編譯時都會刪除,不會影響程序的運行結果。
加上單行注釋和多行注釋后,再次運行helloworld程序不會影響程序的運行結果。
package main // 表示定義一個包,main是可執行程序的包名,所有的Go源文件頭部必須要要有一個包聲明語句,Go通過包來管理命名空間
import "fmt" //- import "fmt"表示引用一個外部的包fmt,import可以是標准庫的包,也可以使第三方或者自定義的包,fmt是標准輸入輸出包
/* func關鍵字定義一個函數,函數名為main,main代表Go程序的入口 */
func main() {
//fmt.Println()是fmt包中的Println函數,函數的實參是一個字符串字面量,在標准輸出(即控制台終端)上輸出mac0S10.14.6 & Go1.12.9 & GoLand 2019.2.1 Hello World
fmt.Println("mac0S10.14.6 & Go1.12.9 & GoLand 2019.2.1 Hello World")
}