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



259e891dcc7e1c344a74fed69b2f6e64.jpeg




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


淺談Golang


做爲程序員而言,每每對於學習新的語言都是有抗拒的。若是你用慣了Java,那麼你可能不太願意去學Python,若是你剛學C或者C++可能你也會看不上Java。由於這個緣由還會引起不少口水仗,這很正常。我當時寫C++的時候也看不上Java,寫了Java又不想學Python,如今學會了Python,有時候也會不想看其餘語言寫的代碼。架構

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

網上相關的信息不少,不少大牛架構師高談闊論。不少觀點和見解我並無很深的體會,因此我就不作搬運工了。簡單說下我我的的一點淺薄的見解編輯器

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

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

6deaf5c83403151fc35b6aa1c445e2f9.jpeg

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

bfa42c63bd1eed3cbf8bba5bfaad0586.jpeg

看起來彷佛很少,可是咱們再來看下就業大戶Java,也才500+學習

73bebab961f775a4c3840b0360f6fb78.jpeg

要知道,Java幾乎是CS必學的語言,全部CS畢業以及相關專業畢業的學生均可以號稱本身會Java。可是Go不同,它太新了,誕生不過十年,以目前高校的反應速度以及篩選課程的能力,它入選中國的教材目測最少還須要5-10年。而且和Java相比,Golang要好學的多。因此若是你尚未畢業,想要成爲一名工程師,想要找一份工做,那能夠考慮學習一下Go,說不定競爭壓力會比Java小得多ui

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


Hello World


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

 
 

package main

import (
 "fmt"
)

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

咱們來簡單看下這段代碼,能夠把這段代碼分紅三個部分。

c12e1eaa6f482cb09aafa1fef8ea1a62.jpeg

最上面的是模塊名,也能夠說成是包名,而後是引入包的語句。這一塊其實沒什麼好說的,不少語言都是這樣的結果,好比Java和Python。在Golang當中main package表示一個獨立的程序,而不是一個包。在main package下的main函數表明這個獨立程序的執行入口,和C++以及Java當中的main函數比較相似。咱們能夠在main函數裏調用其餘包的各類函數。

fmt是Golang當中的標準輸出包,咱們調用它來輸出咱們想打印的東西。

寫完了Hello World以後就要執行了,Golang提供了兩種執行方式,一種是直接go run + 要執行的文件名。還有一種是和C++同樣先進行編譯,再經過./調用編譯以後的二進制包。

固然執行以前咱們須要在電腦上配置Golang的環境,這方面網上的資料不少,而且Golang的安裝也比較簡單,基本上沒有什麼坑,因此照着網上的博客安裝就行了

咱們來分別看下這兩種調用方式,第一種咱們直接使用go run執行代碼:

2f69500418db297a2dbdee24d750f77e.jpeg

還有一種方式是咱們先經過go build對Golang的代碼先進行編譯,會生成一個二進制文件,以後咱們直接./運行這個文件。

797688295e277a2fa966aff47685093c.jpeg

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


IDE


最後簡單聊聊Golang的開發環境,其實如今開發環境已經普世化了,不少代碼編輯器能夠用來寫各類語言。好比業內比較流行的vscode,Atom,Sublime等等,這幾種當中我我的最喜歡vscode,功能很是強大,擁有海量的插件支持,而且頁面風格和使用體驗也不錯,而且仍是免費的。

b25d24e358ca631318ee761bd08d54ba.jpeg

另一個比較經常使用的是Goland,它是Jet Brains公司專門爲Golang開發的IDE。Jet Brains公司專門發開各類語言的IDE,幾乎每一種語言的IDE都廣受歡迎。寫過Java的同窗應該對IDEA都不陌生,它的體驗比eclipse要好用得多。一樣,Goland對於Golang的支持也很是好,使用體驗很是棒,並且若是以前用過它家的其餘產品會很是適應。

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

d515219002f434b752fb7522097b821c.jpeg

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

d4a8c4c9eab9b6febdd5de436b03f6f4.jpeg
相關文章
相關標籤/搜索