[GO語言基礎(chǔ)] 一.為什么我要學(xué)習(xí)Golang以及GO語言入門普及(go語言入門)

      網(wǎng)友投稿 1369 2025-04-01

      這些年我學(xué)過各種編程語言,從最早的C語言到C++,再到C#、PHP、JAVA,再到IOS開發(fā)、Python,到最新的GO語言,學(xué)得是真的雜。有時候覺得編程語言恰恰是最簡單的,而通過一門編程語言能夠解決實際問題或深入底層才是其價值所在,并且當(dāng)我們學(xué)好一門編程語言后(尤其C和C++),其他編程語言都非常類似,殊途同歸,學(xué)起來也很迅速。

      文章目錄

      一.為什么我要學(xué)習(xí)Golang

      1.Golang背景知識

      2.Why

      二.什么是Go語言

      1.Golang的學(xué)習(xí)方向

      2.Golang應(yīng)用領(lǐng)域

      三.如何學(xué)習(xí)Golang

      四.程序基本概念

      五.Golang發(fā)展史

      1.Go語言開發(fā)團(tuán)隊

      2.Go語言誕生歷程

      3.Go語言特點

      六.Windows系統(tǒng)Golang環(huán)境配置

      1.開發(fā)工具

      2.安裝VSCode

      七.Golang語言快速入門

      1.編寫第一個Go程序

      2.Go語言開發(fā)環(huán)境搭建

      3.Go語言程序快速運(yùn)行

      八.總結(jié)

      一.為什么我要學(xué)習(xí)Golang

      1.Golang背景知識

      Go語言其實是Golanguage的簡稱,Go(又稱 Golang)是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 開發(fā)的一種靜態(tài)強(qiáng)類型、編譯并發(fā)型語言。Go 語言語法與 C 相近,但功能上有:內(nèi)存安全,GC(垃圾回收),結(jié)構(gòu)形態(tài)及 CSP-style 并發(fā)計算。該語言的吉祥物為金花鼠(gordon),如下圖所示。

      Go 是一個開源的編程語言,它能讓構(gòu)造簡單、可靠且高效的軟件變得容易。Go的語法接近C語言,但對于變量的聲明有所不同,Go支持垃圾回收功能。Go是從2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持開發(fā),后來還加入了Ian Lance Taylor, Russ Cox等人,并最終于2009年11月開源,在2012年早些時候發(fā)布了Go 1穩(wěn)定版本。現(xiàn)在Go的開發(fā)已經(jīng)是完全開放的,并且擁有一個活躍的社區(qū)。

      官方網(wǎng)站:

      https://golang.org/

      那么,我們?yōu)槭裁匆獙W(xué)習(xí)GO語言呢?

      2.Why

      就我而言:

      學(xué)習(xí)GO語言主要是因為它在安全領(lǐng)域的應(yīng)用,它是區(qū)塊鏈最主流的編程語言,同時也是當(dāng)前最具發(fā)展?jié)摿Φ恼Z言。它支持?jǐn)?shù)據(jù)處理和大并發(fā)處理能力,能有效解決我的很多問題。Go語言是Google公司創(chuàng)造的語言,也是Google主推的語言。國外如Google、AWS、Cloudflare、CoreOS等,國內(nèi)如七牛、阿里、小米、京東等都已經(jīng)開始大規(guī)模使用Golang開發(fā)其云計算相關(guān)產(chǎn)品。

      就你而言:

      為什么你需要學(xué)習(xí)這個編程語言呢?下面我參考知乎和網(wǎng)上大神的答案,談?wù)凣O語言的優(yōu)勢。

      Go 語言特色

      簡潔、快速、安全

      并行、有趣、開源

      內(nèi)存管理、數(shù)組安全、編譯迅速

      Go 語言用途

      Go 語言被設(shè)計成一門應(yīng)用于搭載 Web 服務(wù)器,存儲集群或類似用途的巨型中央服務(wù)器的系統(tǒng)編程語言。對于高性能分布式系統(tǒng)領(lǐng)域而言,Go 語言無疑比大多數(shù)其它語言有著更高的開發(fā)效率。它提供了海量并行的支持,這對于游戲服務(wù)端的開發(fā)而言是再好不過了。

      C/C++的問題:

      開發(fā)效率低,對開發(fā)者要求高;libc只向后兼容,運(yùn)維難度偏大。

      Lua/Python的問題:

      動態(tài)語言,缺少編譯過程,低級錯誤頻出;缺少有效的性能分析及調(diào)試工具。

      以下回答來自我的同事 Nick Cameron,他是 Rust 語言 Core Team 成員,因為我們的分布式數(shù)據(jù)庫產(chǎn)品—— TiDB 的計算層是用 Go 編寫的,所以他最近開始研究用 Go 語言編寫程序,他從一個“編程語言設(shè)計者”的角度,分享了自己對 Go 語言優(yōu)勢/不足的看法。

      用 Go 編程的感覺很棒。庫程序里有我想要的一切,總體實現(xiàn)較為完善。學(xué)習(xí)體驗也十分順暢,不得不說,Go 是一種經(jīng)過精心設(shè)計的實用性語言。舉個例子:一旦你知悉了 Go 的語法,就能將其他語言中慣用法延續(xù)到 Go 中。只要你學(xué)會一些 Go,就可以相對輕易地推測 Go 語言的其他特性。憑借一些來自其他語言的知識,我能夠閱讀并理解 Go 代碼,而不需要過多的搜索(Google)。與 C/C++、Java、Python 等相比,Go 并沒有那么多痛點,而且更具生產(chǎn)力。然而,它還是與這些語言處在同一個時代。一個很好的例證是 nil:像 Rust 和 Swift 這樣的語言已經(jīng)去除了 null 的概念,并且消除了相關(guān)的一整類錯誤。Go 降低了一部分風(fēng)險:沒有空值(no null values),在 nil 和 0 之間進(jìn)行區(qū)分。但其核心思想仍未改變,同樣還會出現(xiàn)解空指針引用這種常見的運(yùn)行時錯誤。

      總體而言,Go 是一種簡單、小巧、令人愉悅的語言。它也有一些犄角旮旯,但絕大部分是經(jīng)過精心設(shè)計的。它的學(xué)習(xí)速度令人難以置信,并且規(guī)避了其他語言中一些不那么廣為人知的特性。垃圾收集確實帶來了一個巨大的差異:使用 GC 使得 Go 變得更簡單、更小,也更容易理解。

      簡單介紹Go語言背景知識后,我們開始詳細(xì)講解這門語言。Let’s go!!!

      二.什么是Go語言

      本文詳細(xì)學(xué)習(xí)了韓順平老師的視頻和柴樹杉老師的《GO高級編程》,在此表示感謝,真的感謝這些大神讓我們不斷進(jìn)步。

      https://www.bilibili.com/video/BV1pt41127FZ

      https://pan.baidu.com/s/1hYja2u-OAw-Q4OpFODBERA?提取碼:yxy4

      1.Golang的學(xué)習(xí)方向

      Go語言其實是Golanguage的簡稱,我們既然要學(xué)習(xí)Go語言,首先需要知道它能做什么事情?

      區(qū)塊鏈研發(fā)工程師

      區(qū)塊鏈的核心思想是去中心化,讓每個人都能參加數(shù)據(jù)庫的記錄,比如虛擬貨幣

      游戲軟件工程師

      游戲數(shù)據(jù)通道會使用Go語言

      Golang分布式/云計算軟件工程師

      盛大云CDN、京東分布式文件系統(tǒng)

      下圖簡單展示了Golang工程師的薪資,相對還不錯。

      2.Golang應(yīng)用領(lǐng)域

      下面我們看看韓老師的Golang應(yīng)用領(lǐng)域知識普及。

      (1) 區(qū)塊鏈應(yīng)用

      區(qū)塊鏈技術(shù)簡稱BT(Blockchain technology)也被稱為分布式賬本技術(shù),是一種互聯(lián)網(wǎng)數(shù)據(jù)庫技術(shù),其特點是去中心化、公開透明,讓每個人均可參與數(shù)據(jù)庫記錄。

      (2) 后端服務(wù)器應(yīng)用(并發(fā))

      美團(tuán)后臺流量支撐程序,支撐主站后臺流量(排序、推薦、搜索等),提供負(fù)載均衡、cache、容錯、按條件分流,統(tǒng)計運(yùn)行指標(biāo)(qps、latency)等功能。

      仙俠道游戲,包括游戲服務(wù)端通訊、邏輯和數(shù)據(jù)存儲等架構(gòu)。下面推薦davyxu大佬分享的Go語言的游戲服務(wù)器底層網(wǎng)絡(luò)庫。

      https://github.com/davyxu/cellnet

      (3) 云計算和云服務(wù)開發(fā)

      盛大云CDN(內(nèi)容分發(fā)網(wǎng)絡(luò)),包括CDN的調(diào)度系統(tǒng)、分發(fā)系統(tǒng)、監(jiān)控系統(tǒng)、短域名服務(wù),CDN內(nèi)部開放平臺、運(yùn)營報表系統(tǒng)及其他一些小工具等。

      PS:2019年參加極棒安全大會,清華大學(xué)利用CDN發(fā)起DDoS攻擊值得安全圈的朋友去學(xué)習(xí)下,利用分發(fā)實現(xiàn)攻擊挺有意思的。

      京東消息推送云服務(wù)(京東云),包括京東分布式文件系統(tǒng),后臺服務(wù)采用Go語言實現(xiàn)。

      [GO語言基礎(chǔ)] 一.為什么我要學(xué)習(xí)Golang以及GO語言入門普及(go語言入門)

      三.如何學(xué)習(xí)Golang

      首先,我先補(bǔ)充下我是如何怎么學(xué)習(xí)編程語言的。

      不要這樣學(xué)習(xí):

      只看書,不上機(jī)

      只運(yùn)行,不調(diào)試

      只,不實踐,半途而廢

      只做課后練習(xí),不做工程項目

      應(yīng)該這樣學(xué)習(xí):

      多敲代碼,多敲代碼,多敲代碼

      多讀代碼,重視實戰(zhàn)

      良好的興趣和信念支撐,無論是書本或視頻,都堅持學(xué)到最后

      根據(jù)自己的興趣或者市場的需要做一些有一定規(guī)模的項目

      Golang語言的基本學(xué)習(xí)方法和其他編程語言類似,需要注意以下幾點:

      高效愉快地學(xué)習(xí)

      先建立一個整體框架,然后細(xì)節(jié)

      在實際工作中,要培養(yǎng)用到什么,能夠快速學(xué)習(xí)什么能力

      先know how,再know why

      軟件編程是一門“做中學(xué)”的學(xué)科,不是會了再做,而是做了才會

      適當(dāng)?shù)摹班駠魍虠棥?/p>

      學(xué)習(xí)軟件編程是在琢磨別人怎么做,而不是我認(rèn)為應(yīng)該怎么做的過程,重點放在邏輯上,而不是語法本身

      如果您關(guān)注我的博客,您應(yīng)該知道我自己是一個腳踏實地學(xué)習(xí)和正能量的人,朋友圈和說說也經(jīng)常發(fā)一些自己的動態(tài)去感染身邊的人,包括考研、考博、找工作的朋友,如果需要這種能量可以加我微信。總之,希望您能堅持學(xué)習(xí),做一些自己喜歡的事,學(xué)一些感興趣的技術(shù)或混口飯吃,加油!

      四.程序基本概念

      由于該課程盡量面向零基礎(chǔ)的同學(xué),所以這里簡單普及下程序的基本概念知識。

      (1) 什么是程序

      計算機(jī)程序是一組計算機(jī)能識別和執(zhí)行的指令,運(yùn)行于電子計算機(jī)上,滿足人們某種需求的信息化工具。

      為了讓計算機(jī)執(zhí)行某些操作或解決某個問題而編寫的一系列有序指令的集合

      (2) 什么是指令

      指令是告訴計算機(jī)從事某一特殊運(yùn)算的代碼。如:數(shù)據(jù)傳送指令、算術(shù)運(yùn)算指令、位運(yùn)算指令、程序流程控制指令、串操作指令、處理器控制指令。計算機(jī)程序發(fā)給計算機(jī)處理器的命令就是“指令(instruction)”。最低級的指令是一串0和1,表示一項實體作業(yè)操作要運(yùn)行(如“Add”)。根據(jù)指令類型,某個具體的存儲領(lǐng)域被稱作“寄存器(register)”,里面包含了可用于調(diào)出指令的數(shù)據(jù)或數(shù)據(jù)存儲位置。

      在上圖中,上部分類比為程序,老板和秘書通過對話的形式進(jìn)行交互。下部分是計算機(jī)實現(xiàn)老板布置的指令過程,計算機(jī)通過程序?qū)崿F(xiàn)交互,程序員將main.go源碼進(jìn)行編譯,得到一個可執(zhí)行文件(二進(jìn)制)main.exe,電腦再去執(zhí)行操作。

      五.Golang發(fā)展史

      1.Go語言開發(fā)團(tuán)隊

      Go語言是由三位大佬設(shè)計的,他們分別是Ken Thompson(肯·湯普森)、Rob Pike(羅伯·派克)和Robert Griesemer(羅伯特·格利茨默) 。

      Rob Pike:曾是貝爾實驗室(Bell Labs)的Unix團(tuán)隊,和Plan 9操作系統(tǒng)計劃的成員。他與Thompson共事多年,并共創(chuàng)出廣泛使用的UTF-8 字元編碼。

      Robert Griesemer:在開發(fā)Go之前是Google V8、Chubby和HotSpot JVM的主要貢獻(xiàn)者,曾協(xié)助制作Java的HotSpot編譯器,和Chrome瀏覽器的JavaScript引擎V8。

      Google為什么要創(chuàng)造Go語言呢?

      計算機(jī)硬件技術(shù)更新頻繁,性能提高很快。目前主流的編程語言發(fā)展明顯落后于硬件,

      不能合理利用多核多CPU的優(yōu)勢提升軟件系統(tǒng)性能

      軟件系統(tǒng)復(fù)雜度越來越高,維護(hù)成本越來越高,目前缺乏一個足夠簡潔高效的編程語言。現(xiàn)有編程語言風(fēng)格不統(tǒng)一,計算能力不夠,不能處理大并發(fā)。

      企業(yè)運(yùn)行維護(hù)很多C/C++的項目,C/C++程序運(yùn)行速度雖然很快,但是編譯速度卻很慢,同時還存在內(nèi)存泄露的一系列困擾需要解決。

      那么,能不能開發(fā)一種既兼顧編譯語言的速度,又能同時擁有腳本語言的開發(fā)速度的強(qiáng)大語言呢?因此創(chuàng)造了Go語言。

      2.Go語言誕生歷程

      Go語言最初由Google公司的Robert Griesemer、Ken Thompson和Rob Pike三個大牛于2007 年開始設(shè)計發(fā)明,設(shè)計新語言的最初的洪荒之力來自于對超級復(fù)雜的C++11特性的吹捧報告的鄙視,最終的目標(biāo)是設(shè)計網(wǎng)絡(luò)和多核時代的C語言。到2008年中期,語言的大部分特性設(shè)計已經(jīng)完成,并開始著手實現(xiàn)編譯器和運(yùn)行時,大約在這一年Russ Cox作為主力開發(fā)者加入。 到了2010年,Go語言已經(jīng)逐步趨于穩(wěn)定,并在9月正式發(fā)布Go語言并開源了代碼。下圖是Go語言的基因圖譜。

      發(fā)布的版本信息如下所示:

      2007年,谷歌工程師開始設(shè)計一門全新的語言,這是Go語言的最初原型。

      2009年11月10日,Google將Go語言以開放源代碼的方式向全球發(fā)布。

      2015年8月19日,Go 1.5版發(fā)布,本次更新中移除了“最后殘余的C代碼”,里程碑版本。

      2017年2月17日,Go語言Go 1.8版發(fā)布。

      2017年8月24日,Go語言Go 1.9版發(fā)布。

      2018年2月16日,Go語言Go 1.10版發(fā)布。

      Go語言很多時候被描述為“類C語言”,或者是“21世紀(jì)的C語言”。從各種角度看,Go語言確實 是從C語言繼承了相似的表達(dá)式語法、控制流結(jié)構(gòu)、基礎(chǔ)數(shù)據(jù)類型、調(diào)用參數(shù)傳值、指針等諸 多編程思想,還有徹底繼承和發(fā)揚(yáng)了C語言簡單直接的暴力編程哲學(xué)等。下面是Go語言中來自貝爾實驗室特有并發(fā)編程基因的演化過程:

      縱觀整個貝爾實驗室的編程語言的發(fā)展進(jìn)程,從B語言、C語言、Newsqueak、Alef、Limbo 語言一路走來,Go語言繼承了來著貝爾實驗室的半個世紀(jì)的軟件設(shè)計基因,終于完成了C語 言革新的使命。縱觀這幾年來的發(fā)展趨勢,Go語言已經(jīng)成為云計算、云存儲時代最重要的基礎(chǔ)編程語言

      3.Go語言特點

      Go語言保證了既能到達(dá)靜態(tài)編譯語言的安全和性能,又達(dá)到了動態(tài)語言開發(fā)維護(hù)的高效率,使用一個表達(dá)式來形容Go語言,則如下:

      Go = C + Python

      說明Go語言既有C靜態(tài)語言程序的運(yùn)行速度,又能達(dá)到Python動態(tài)語言的快速開發(fā)。具體特點如下:

      (1) 從C語言中繼承了很多理念,包括表達(dá)式語法、控制結(jié)構(gòu)、基礎(chǔ)數(shù)據(jù)類型、調(diào)用參數(shù)傳值、指針等等,也保留了和C語言一樣的編譯執(zhí)行方式及弱化的指針。

      下面先普及幾個Go語言的程序,讓大家感受下Go語言的魅力。首先介紹指針,go語言函數(shù)中是將變量寫在前面,類型寫在后面,同時Go語言后不用帶分號(;)。

      package main //go語言指針的使用特點 星號取值 func testPtr(num *int) { *num = 20 } func main() { }

      (2) 引入包的概念,用于組織程序結(jié)構(gòu),Go語言的

      一個文件都要歸屬于一個包

      ,而不能單獨存在。比如新建“test.go”文件,需要在一個包main中。

      package main //一個go文件需要在一個包中 import "fmt" func sayOK() { fmt.Println("ok") }

      (3)?垃圾回收機(jī)制。內(nèi)存自動回收,不需要開發(fā)人員管理,防止造成內(nèi)存泄露。

      (4)?天然并發(fā)性能。從語言層面支持并發(fā),實現(xiàn)簡單;goroutine輕量級線程,可實現(xiàn)大并發(fā)處理,高效利用多核;基于CPS并發(fā)模型(Communicating Sequential Process)實現(xiàn)。

      (5)?吸收了管道通信機(jī)制。形成Go語言特有的管道channel。通過管道channel可以實現(xiàn)不同的goroute之間的相互通信。

      (6) 函數(shù)可以返回多個值。

      //寫一個函數(shù)實現(xiàn)同時返回多個值 func getSumAndSub(n1 int, n2 int) (int, int) { sum := n1 + n2 //go語言后面不用帶分號 sub := n1 - n2 return sum, sub }

      (7) 新的創(chuàng)新比如切片(slice)、延時執(zhí)行defer等。

      六.Windows系統(tǒng)Golang環(huán)境配置

      1.開發(fā)工具

      常用的Go開發(fā)工具如下圖所示:

      Visual Studio Code

      微軟的產(chǎn)品,一個運(yùn)行于Mac OS、Windows和Linux之上的工具,默認(rèn)提供G語言的語法高亮。安裝Go語言插件,還可以支持智能提示,編譯運(yùn)行等功能。

      Sublime Text

      可以免費(fèi)試用,默認(rèn)也支持Go代碼語法高亮,只是保存次數(shù)達(dá)到一定數(shù)量后需要購買。

      Vim

      它是從vi(Linux)發(fā)展出來的一個文本編輯器,代碼補(bǔ)全、編譯及錯誤跳轉(zhuǎn)等方便編程的功能非常豐富。

      Emacs

      它不僅僅是一個編輯器,因為功能強(qiáng)大,可稱為集成開發(fā)環(huán)境。

      Eclipse IDE工具

      開源免費(fèi),并提供GoEclipse插件。

      LiteIDE

      LiteIDE是一款專門為Go語言開發(fā)的跨平臺輕量級集成開發(fā)環(huán)境(IDE),是國人開發(fā)的。

      JetBrains公司的產(chǎn)品

      PhpStrom、WebStrom和PyCharm等IDE工具,都需要安裝Go插件。

      官方-:

      https://golang.org/doc/install?download=go1.15.6.windows-amd64.msi

      建議大家先選擇VSCode或Vim文本編輯器,當(dāng)大家對Go語言有一定了解后,再使用Eclipse等IDE集成開發(fā)工具。這樣能讓你更好地理解Go語言技術(shù)和基本語法,后續(xù)更深入的理解Go語言,尤其對于初學(xué)者來說,找工作時記住一些常見的函數(shù)非常必要。

      2.安裝VSCode

      下載VScode安裝軟件:

      https://code.visualstudio.com/Download

      它有不同版本供大家下載,Windows包括32位和64位版本,zip是壓縮包,Installer需要安裝;Linux中.tar.gz表示解壓后就能使用64位,Mac系統(tǒng)只有一個下載。

      VSCodeSetup-x64-1.52.0.exe

      直接運(yùn)行EXE程序安裝。這里選擇安裝路徑:

      D:\Microsoft VS Code

      這里建議選擇勾選“添加到PATH”,環(huán)境變量能省去我們以后的很多麻煩。

      安裝過程如下圖所示:

      安裝成功后打開VSCode如下圖所示。

      七.Golang語言快速入門

      1.編寫第一個Go程序

      首先我們簡單編寫Golang程序。

      第一步,創(chuàng)建一個文件夾用于存放Go程序,命名為“Goproject”。

      第二步,選擇“文件(File)”->“打開文件夾(Open Folder)”,可以看到GOPROJECT打開。

      第三步,點擊按鈕創(chuàng)建一個新的文件“test01.go”。

      第四步,編寫最簡答的代碼。

      package main //把test.go文件歸屬到main import "fmt" //引入包fmt func main() { //輸出內(nèi)容 fmt.Println("hello, My name is Eastmount!") }

      同時,我們會看到右下角不斷彈窗,因為這款工具功能檢測到你正在做Go開發(fā),它會提示你去安裝相應(yīng)的擴(kuò)展包。目前我們暫時不安裝相關(guān)插件,直接關(guān)掉即可。

      2.Go語言開發(fā)環(huán)境搭建

      現(xiàn)在我們能直接開發(fā)了嗎?其實不行。寫好源代碼之后,我們還需要進(jìn)行編譯和運(yùn)行源代碼,因此需要搭建Go語言的開發(fā)環(huán)境,它需要SDK。

      第一步,下載SDK。

      SDK全稱是(Software Development Kit)軟件開發(fā)工具包,SDK是提供給開發(fā)人員使用的,其中包含了對應(yīng)開發(fā)語言的工具包。其-是Go語言的官方地址。

      https://studygolang.com/dl

      go1.15.6.windows-amd64.zip

      C:\Software\go

      其中,bin文件中的go.exe用于編譯可執(zhí)行文件,godoc.exe用于生產(chǎn)文檔,dofmt.exe用于代碼格式化。

      第三步,測試Go語言的SDK安裝成功。

      cd go\bin

      dir

      go version

      注意如果返回上一層目錄執(zhí)行“go version”會提示錯誤信息,這涉及到環(huán)境變量配置問題。

      原因:當(dāng)前執(zhí)行的程序在當(dāng)前目錄下如果不存在,Windows系統(tǒng)會在系統(tǒng)中已有的一個名為path環(huán)境變量指定的目錄中查找。如果仍未找到,就會出現(xiàn)以上的錯誤提示。所以需要進(jìn)入go安裝路徑bin目錄下,執(zhí)行g(shù)o,才會看到參數(shù)提示信息。

      第四步,配置Go環(huán)境變量。

      根據(jù)Windows系統(tǒng)在查找可執(zhí)行程序的原理,可以將Go所在路徑定義到環(huán)境變量中,讓系統(tǒng)幫我們?nèi)フ业竭\(yùn)行執(zhí)行的程序,這樣任何目錄都可以執(zhí)行g(shù)o指令。配置的環(huán)境變量如下所示:

      右擊“我的電腦”->屬性->高級系統(tǒng)設(shè)置->高級->環(huán)境變量->新建系統(tǒng)變量。

      添加的環(huán)境變量如下:

      新建:GOROOT C:\Software\go

      編輯:Path,添加“;%GOROOT%\bin”

      Path環(huán)境變量系統(tǒng)自帶,不需要新建增加內(nèi)容即可;同時增加的“%GOROOT%”路徑表示引用上一步添加的變量。

      GOPATH D:\Microsoft VS Code\Goproject

      其中,GOPATH表示以后Go項目存放的路徑,即工作目錄。

      重新打開DOS在運(yùn)行命令,接著測試配置的環(huán)境變量是否成功。

      3.Go語言程序快速運(yùn)行

      Go程序的目錄結(jié)構(gòu)如下圖所示:

      第一步,在Goproject文件夾中創(chuàng)建“src\go_code”目錄,并創(chuàng)建第一個項目“project01”。

      第二步,VSCode打開剛才創(chuàng)建的文件目錄。

      package main //把test.go文件歸屬到main import "fmt" //引入包fmt func main() { //輸出內(nèi)容 fmt.Println("hello, My name is Eastmount!") }

      代碼解釋:

      Go程序的后綴是 .go

      Go項目結(jié)構(gòu)通常采用:GOPROJECT -> src -> go_code -> 項目名稱

      package main

      :表示test01.go文件所在包是main,在go中,每個文件都必須歸屬于一個包

      import “fmt”

      :表示引入了一個包,包名為fmt,引入該包后就能使用其函數(shù),比如fmt.Println

      func main() {

      :這是一個關(guān)鍵字,后面對應(yīng)是一個函數(shù)。main是主函數(shù),即程序的入口。

      fmt.Println(“hello, My name is Eastmount!”)

      :調(diào)用fmt包中函數(shù)輸出內(nèi)容

      第三步,通過go_build命令對該go文件進(jìn)行編譯,生成.exe文件

      進(jìn)入項目main路徑下,然后“dir”查看該目錄下的文件。

      輸入命令“go build test01.go”,發(fā)現(xiàn)生成exe文件。

      第四步,在DOS命令行下執(zhí)行.exe文件,并查看運(yùn)行效果。

      第五步,通過go run命令可以直接運(yùn)行test01.go程序,但真實環(huán)境是需要先編譯后運(yùn)行的。該命令的運(yùn)行時間更長,因為編譯過程中隱藏在命令中,而上面的步驟是運(yùn)行編譯后的程序。

      八.總結(jié)

      寫到這里,這篇基礎(chǔ)性Golang文章介紹完畢,希望您喜歡!

      一.為什么我要學(xué)習(xí)Golang

      二.什么是Go語言

      三.如何學(xué)習(xí)Golang

      四.程序基本概念

      五.Golang發(fā)展史

      六.Windows系統(tǒng)Golang環(huán)境配置

      七.Golang語言快速入門

      希望這篇基礎(chǔ)性文章對您有幫助,寫得不好的地方還請海涵。同時非常感謝參考文獻(xiàn)中的安全大佬們的文章分享,深知自己很菜,得努力前行。也希望自己能深入下去,未來四年好好研究Go編程語言,做更多實際工程,寫更好的文章,共勉!

      讀萬卷書,行萬里路。且行且珍惜,愛你們喔!

      (By:娜璋AI之家 Eastmount 2021-06-12 星期天 寫于武漢?https://blog.csdn.net/Eastmount)

      參考文獻(xiàn):

      Go官網(wǎng):https://golang.org/

      韓老師視頻:https://www.bilibili.com/video/BV1pt41127FZ

      https://www.runoob.com/go/go-tutorial.html

      https://baike.baidu.com/item/go/953521

      https://www.zhihu.com/question/21409296

      https://www.zhihu.com/question/21409296/answer/1210793633

      https://golang.org/doc/install?download=go1.15.6.windows-amd64.msi

      https://code.visualstudio.com/Download

      Go 通用安全

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:這是什么玩意編輯設(shè)置怎么是這樣??(啟用編輯是什么意思)
      下一篇:機(jī)械生產(chǎn)制造企業(yè)(機(jī)械生產(chǎn)制造企業(yè)生產(chǎn)管理論文)
      相關(guān)文章
      亚洲第一成年网站视频| 亚洲色偷偷综合亚洲av78| 亚洲欧洲AV无码专区| 亚洲国产高清视频在线观看| 亚洲国产高清在线| 亚洲精品~无码抽插| 亚洲伊人久久精品影院| 中文字幕无码精品亚洲资源网| 久久精品国产亚洲Aⅴ香蕉| 亚洲精品网站在线观看不卡无广告| 亚洲AV无码专区日韩| 国产成人不卡亚洲精品91| 国产成人亚洲精品蜜芽影院| 激情小说亚洲色图| 国产成人 亚洲欧洲| 亚洲欧洲久久av| 国产午夜亚洲精品午夜鲁丝片| 亚洲中文字幕无码日韩| 国产亚洲综合网曝门系列| 亚洲成色www久久网站夜月| 久久久亚洲精品国产| 久久久亚洲AV波多野结衣| 91亚洲精品麻豆| 亚洲最大福利视频| 亚洲精品自偷自拍无码| 国产精品亚洲精品日韩动图| 亚洲成A∨人片天堂网无码| 国产成人精品久久亚洲高清不卡 | 亚洲色精品88色婷婷七月丁香 | 亚洲精品乱码久久久久久按摩| 亚洲日韩中文无码久久| 亚洲成人午夜在线| 亚洲精彩视频在线观看| 亚洲男人天堂2018av| 在线亚洲v日韩v| 亚洲综合色婷婷七月丁香| 久久亚洲国产伦理| 亚洲人成7777影视在线观看| 亚洲中文字幕无码亚洲成A人片| 亚洲a∨国产av综合av下载| 亚洲色图综合在线|