1. 程式人生 > >GoLang——Hello World,開啟新世界的大門

GoLang——Hello World,開啟新世界的大門

本文始發於個人公眾號:TechFlow,原創不易,求個關注


今天是Go語言系列的第一篇文章,我們來聊聊這門新的語言和它的基礎語法。

淺談Golang

作為程式設計師而言,往往對於學習新的語言都是有抗拒的。如果你用慣了Java,那麼你可能不太願意去學Python,如果你剛學C或者C++可能你也會看不上Java。因為這個原因還會引發很多口水仗,這很正常。我當時寫C++的時候也看不上Java,寫了Java又不想學Python,現在學會了Python,有時候也會不想看其他語言寫的程式碼。

但是隨著我們的成長和實力的提升,我逐漸發現學習一門語言的成本在飛快地下降。畢竟天下語言都是程式,就好像武俠小說裡各門各派的武功眼花繚亂,但是歸結起來無非是拳腳功夫、刀劍或者是內功這麼幾種。語言也是一樣,雖然我會的語言也不夠多,遠遠沒達到可以指點江山的地步。但也發現了很多語言之間的相關性實在是很強,有些理念一脈相承,有些更像是一個模子裡刻出來的。既然如此,我們為什麼需要學習Go這樣一門語言呢?

網上相關的資訊很多,很多大牛架構師高談闊論。很多觀點和看法我並沒有很深的體會,所以我就不做搬運工了。簡單說下我個人的一點淺薄的看法。

當初學習Golang這門語言的原因很簡單,純粹是因為工作需要。當前的公司幾乎所有的系統都是以Golang寫的,所以學習Golang是必須的。但是學會語言基本的使用和精通一門語言這是兩回事,學會基本的用法是因為工作需要,而讓我想要花時間把這門語言精通是因為一門課程。這門課程非常著名,它是MIT(麻省理工)的分散式系統的公開課,當中的內容和課後作業都非常硬核,更關鍵的是課後作業是用Golang寫的。

在學習這門課程的過程當中,經過了一些思考和一些觀察,Golang的確在分散式處理的場景和問題當中有一定的優勢,許多優秀的解決方案都是基於Golang寫的。並且這兩年各類語言的流行變遷情況也印證了這一點,在最新的全世界程式設計師最想要學習的語言當中,Golang排名前3。在全球語言流行排行當中,Golang也衝進了前十,要知道這門語言才誕生十年。

並且在國內Golang工程師的需求量也與日俱增,我純屬好奇去拉勾網看了一下,全國Golang的崗位是341個。

看起來似乎不多,但是我們再來看下就業大戶Java,也才500+

要知道,Java幾乎是CS必學的語言,所有CS畢業以及相關專業畢業的學生都可以號稱自己會Java。但是Go不一樣,它太新了,誕生不過十年,以目前高校的反應速度以及篩選課程的能力,它入選中國的教材目測最少還需要5-10年。並且和Java相比,Golang要好學的多。所以如果你還沒有畢業,想要成為一名工程師,想要找一份工作,那可以考慮學習一下Go,說不定競爭壓力會比Java小得多。

我個人覺得Golang是一門非常有個性的語言,長處與短處都非常的明顯。關於它的長處很多,相比於一一列舉出來,在實際學習和運用的過程當中領會到的感受會深得多。

Hello World

學語言第一件事就是敲Hello World,我想所有語言都不例外,我們也來看下Golang的Hello World,來看下它的基本結構。

package main

import (
 "fmt"
)

func main() {
 fmt.Println("Hello World")
}

我們來簡單看下這段程式碼,可以把這段程式碼分成三個部分。

最上面的是模組名,也可以說成是包名,然後是引入包的語句。這一塊其實沒什麼好說的,很多語言都是這樣的結果,比如Java和Python。在Golang當中main package表示一個獨立的程式,而不是一個包。在main package下的main函式代表這個獨立程式的執行入口,和C++以及Java當中的main函式比較類似。我們可以在main函式裡呼叫其他包的各種函式。

fmt是Golang當中的標準輸出包,我們呼叫它來輸出我們想列印的東西。

寫完了Hello World之後就要執行了,Golang提供了兩種執行方式,一種是直接go run + 要執行的檔名。還有一種是和C++一樣先進行編譯,再通過./呼叫編譯之後的二進位制包。

當然執行之前我們需要在電腦上配置Golang的環境,這方面網上的資料很多,並且Golang的安裝也比較簡單,基本上沒有什麼坑,所以照著網上的部落格安裝就好了。

我們來分別看下這兩種呼叫方式,第一種我們直接使用go run執行程式碼:

還有一種方式是我們先通過go build對Golang的程式碼先進行編譯,會生成一個二進位制檔案,之後我們直接./執行這個檔案。

所以從這裡我們可以看出來,Golang是編譯型語言而不是解釋性語言,因此它的效率會非常高,實際上由於Golang的一些底層設計和特性,Golang的執行效率非常高,在絕大多數場景比Java更快,僅僅次於C++。

IDE

最後簡單聊聊Golang的開發環境,其實現在開發環境已經普世化了,很多程式碼編輯器可以用來寫各種語言。比如業內比較流行的vscode,Atom,Sublime等等,這幾種當中我個人最喜歡vscode,功能非常強大,擁有海量的外掛支援,並且頁面風格和使用體驗也不錯,並且還是免費的。

另外一個比較常用的是Goland,它是Jet Brains公司專門為Golang開發的IDE。Jet Brains公司專門發開各種語言的IDE,幾乎每一種語言的IDE都廣受歡迎。寫過Java的同學應該對IDEA都不陌生,它的體驗比eclipse要好用得多。同樣,Goland對於Golang的支援也非常好,使用體驗非常棒,而且如果之前用過它家的其他產品會非常適應。

Goland頁面風格以及各方面體驗都非常棒,但缺點也很明顯,一個是基本上只支援Golang,另一個缺點就是貴。免費的社群版要閹割掉一些功能,而專業版則要好幾千人民幣。不過如果是學生的話可以免費申請,不得不說還是非常人性化。

除了這些之外,還有七牛團隊開源的liteide,基於C++ QT開發,因此執行效率很高,但據說除錯功能不太好用。我也沒有用過,感興趣的小夥伴可以試試。

今天的文章就是這些,如果覺得有所收穫,請順手點個在看或者轉發吧,你們的舉手之勞對我來說很重要。

相關推薦

GoLang——Hello World開啟世界大門

本文始發於個人公眾號:TechFlow,原創不易,求個關注 今天是Go語言系列的第一篇文章,我們來聊聊這門新的語言和它的基礎語法。 淺談Golang 作為程式設計師而言,往往對於學習新的語言都是有抗拒的。如果你用慣了Java,那麼你可能不太願意去學Python,如果你剛學C或者C++可能你也會看不上Java

沒玩過DApp?現在就開啟世界大門

什麼是DApp?DApp實際上就是在App前面加了個D,而這個D代表的是decentralize,也就是去中心化。DApp就是建立在區塊鏈技術上的App。 DApp的最大特點就是,由於區塊鏈不可篡改不可造假的特性,你在DApp上所產生的價值都是屬於自己的,而不是僅僅給APP開發商帶來了流量。 不可造假

Python基礎知識之:hello world註釋變量數據類型

我們 重要 一個 yield code oba () turn 編程語言   從接觸編程語言以來,在我腦海裏經常有三個問號: 這是什麽? 這個有什麽用? 這個怎麽用?   我覺得初學一個東西,把這三個問號都搞明白,那麽剩下的就是孰能生巧的過程了,在接下來的博客中,每個知

Jekins - Hello worldJekins + Maven + Git + Tomcat 的簡單應用

定時 contain 管理 www. href oca span hello 應用 Java Web 工程 新建一個簡單的 Java Web 工程,並提交至 GitHub,可參考 Eclipse 提交工程至 GitHub 下載 jekins.war 在

“汽車零售”模式興起開啟零售時代汽車互聯網+的新篇章!

新零售 互聯網+ 汽車 “匯新杯”新興科技+互聯網創新大賽報名火熱進行中 大賽報名入口:https://www.chuangcheng.org.cn/455 曾幾何時,電商模式席卷中國消費市場,但唯獨撼動不了汽車流通行業的根基,汽車電商試驗以團滅告終。 正當汽車互聯網+之路陷入一片迷茫混沌之際,

MUI中點選推送訊息若為同類型資訊不關閉前一個頁面開啟頁面仍顯示前一個頁面資料的問題

最近公司在做的一個專案涉及個推推送,在寫推送過程中遇到了很多問題,現在把其中的一個問題與大家分享。 我們要實現的功能是後臺推送過來,我要根據推送的資訊型別進入不同的頁面,展現不同的資訊,但在寫的過程中發現同一種類型資訊,在不關閉前一條資訊的情況下,點選下一條同類型的資訊,開啟的頁面還是顯示上

golang Hello world!

/** * 編譯命令: * go build ./ * 生成二進位制可執行檔案。 test.exe * 注意:字串用雙引號引用。 */ package main import "fmt" func main() { fmt.Println("hello world.") }

scrapy+selenium中關於同一個頁面模擬點選後開啟的標籤頁切換到頁面的方法

windows = spider.browser.current_window_handle # 定位當前頁面控制代碼 time.sleep(5) target = spider.browser.find_element_by_id("toolber-keyword") keyword

js開啟視窗開啟視窗遮蔽工具欄和位址列視窗按規定大小顯示

opener=null; window.open ("http://baidu.com", "newwindow", "height=500, width=800, toolbar=no, menubar=no, scrollbars=no, resizab

JavaFX入門(四)之Hello WorldJavaFX樣式

教你建立和構建JavaFX應用程式的最佳方法是使用“Hello World”應用程式。本教程的另一個好處是,它使您能夠測試您的JavaFX技術是否已正確安裝。 本教程中使用的工具是NetBeans IDE 7.4。在開始之前,請確保您使用的NetBeans IDE版本支

最熱門的10種程式語言寫的Hello World你會的有哪幾個?

Hello World是我們進入程式設計的第一句執行的語言了,至少對於我是這樣的,今天千鋒武漢Java培訓小編我收集了10種程式語言寫的Hello World,你能看懂幾個? 1、C 2、Java 3、C++ 4、PHP 5、Basic 6

回顧4180天在騰訊使用C#的歷程開啟的征途

今天是2018年8月8日,已經和騰訊解除勞動關係,我的公司正式開始運營,雖然還有很多事情需要理清,公司官網也沒有做,接下來什麼事情都需要自己去完成了,需要一步一個腳印去完善,開啟一個新的征途,我將在部落格和公眾號更新我的動態。 昨天是星期二,我在騰訊這家優秀的公司工作的第4180天,這天我離開了騰訊。這次的

20種程式語言的hello world你知道幾種

20種程式語言的hello world 你知道幾種................. 進群進群:943752371可以獲取Python各類入門學習資料! 這是我的微信公眾號【Python程式設計之家】各位大佬用空可以關注下,每天更新Python學習方法,感謝! 1111111111

Jetty:Hello World使用main啟動的簡單http server

使用jetty開發http server能力,通過main啟動的hello例子。 第一步:下載jetty 第二步:使用eclipse建立普通的java工程,取名為learnjava,同時把jetty壓縮包下面的lib目錄下jar檔案,放到learn/lib/je

擁抱區塊鏈和金融科技開啟金融時代

什麼是金融科技?金融科技英文叫FINTECH,國內最早的定義為“科技金融是促進科技開發、成果轉化和高新技術產業發展的一系列金融工具、金融制度、金融政策與金融服務的系統性安排”,而沃頓商學院給出的定義是:用技術改進金融體系效率的經濟行業。 金融業作為資訊密集型行業,資訊科

Hello WorldI‘m Mr.Dinosaur.

  一個C程式一直以來都是由以下5個段(pieces)組成: 程式碼段(text segment):存放CPU執行的機器指令(machine instructions)。通常情況下,程式碼段是可共享的,使其可共享的目的是對於頻繁被執行的程式,只需要在記憶體中有一份拷貝即可,

20種編程語言的hello world你知道幾種!

tps hello pro oss color shadow 語言 com tex 20種編程語言的hello world 你知道幾種.................20種編程語言的hello world,你知道幾種!

僅用六種字元來完成Hello World你能做到嗎?

Hello World 對於每一個開發者來說都不陌生,因為在我們學習任何一個語言或框架的時候,都會有一個Hello World的案例來幫助我們快速入門。 如果我們使用JavaScript來輸出Hello World的話,可以這樣寫: ```javascript alert("Hello World");

她每天吃一個煮熟的蘋果從此打開了通往世界大門~

寶寶 line ott text auto db2 ans 包括 left 她每天吃一個煮熟的蘋果,從此打開了通往新世界的大門~ 2017-05-06小金豆鄭州微公交通常人們吃蘋果都是洗幹凈削皮生吃大家有沒有想過將蘋果煮熟以後再吃呢?小編的一位朋友她特別樂於研究廚房裏的