作為一個(gè)測試,作為一個(gè)測試開發(fā), 全?;?管理 是我們未來的發(fā)展方向。已經(jīng)掌握了Java、Python、HTML的你,是不是也想了解下最近異常火爆的Go語言呢?來吧,讓我們一起了解下。
創(chuàng)新互聯(lián)公司從2013年開始,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、外貿(mào)網(wǎng)站建設(shè)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢想脫穎而出為使命,1280元薌城做網(wǎng)站,已為上家服務(wù),為薌城各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:13518219792
Go 是一個(gè)開源的編程語言 ,它能讓構(gòu)造簡單、可靠且高效的軟件變得容易。
Go是從2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持開發(fā),后來還加入了Ian Lance Taylor, Russ Cox等人,并最終于2009年11月開源,在2012年早些時(shí)候發(fā)布了Go 1穩(wěn)定版本?,F(xiàn)在Go的開發(fā)已經(jīng)是完全開放的,并且擁有一個(gè)活躍的社區(qū)。這三個(gè)人都是計(jì)算機(jī)界的大神,有的參與了C語言的編寫,有的還是數(shù)學(xué)大神,有的還獲得了計(jì)算機(jī)最高榮譽(yù)-圖靈獎。
接下來說說 Go語言的特色 :
簡潔、快速、安全
并行、有趣、開源
內(nèi)存管理、數(shù)組安全、編譯迅速
Go語言的用途 :
Go 語言被設(shè)計(jì)成一門應(yīng)用于搭載 Web 服務(wù)器,存儲集群或類似用途的巨型中央服務(wù)器的系統(tǒng)編程語言。
對于高性能分布式系統(tǒng)領(lǐng)域而言,Go 語言無疑比大多數(shù)其它語言有著更高的開發(fā)效率。它提供了海量并行的支持,這對于 游戲 服務(wù)端的開發(fā)而言是再好不過了。
Go語言的環(huán)境安裝:
建議直接打開 官方地址因?yàn)閴Φ脑虼虿婚_
因?yàn)槲矣玫氖莣indows系統(tǒng),這里主要講下Windows系統(tǒng)上使用Go語言來編程。
Windows 下可以使用 .msi 后綴(在下載列表中可以找到該文件,如go1.17.2.windows-amd64.msi)的安裝包來安裝。
默認(rèn)情況下 .msi 文件會安裝在 c:Go 目錄下。你可以將 c:Gobin 目錄添加到 Path 環(huán)境變量中。添加后你需要重啟命令窗口才能生效。個(gè)人建議還是安裝到 Program Files文件夾中。
使用什么開發(fā)工具來對Go語言進(jìn)行編寫:
個(gè)人建議用VS code, 也可以用Sublime Text來編輯。如果你之前看了我講的HTML語言的學(xué)習(xí),肯定已經(jīng)下載了VS code. 那么這時(shí)你需要在VS code中下載Go語言的擴(kuò)展插件。
這里有一個(gè)巨大的坑,就是在下載Go的插件和依賴包時(shí),會提示一些包沒有。主要是因?yàn)橄螺d的依賴包部分被墻了,只能想別的辦法去下載。
建議參考網(wǎng)頁:
解決vscode中g(shù)olang插件安裝失敗方法
在學(xué)習(xí)go的過程中,使用的是vscode,但是一直提示安裝相關(guān)插件失敗,然后上網(wǎng)查方法,基本上是叫你建立golang.org目錄什么的,結(jié)果全是錯(cuò)的,而且都是抄襲,很煩。無意之中看到一位博主分享的方法,他也是飽受上述的垃圾博文困擾,然后找到了解決方法,這里向他致敬,秉著讓更多人看到正確解決方法的心,我寫下正確的解決方法,希望對你有所幫助,也可以點(diǎn)開原博主鏈接參考:
Go有一個(gè)全球模塊代理,設(shè)置代理再去安裝golang的插件,就可以安裝成功了。步驟有,首先Windows用戶打開Powershell,一個(gè)藍(lán)色的界面,注意不是cmd!不知道的直接打開window下面的搜索,然后輸入powershell,搜索出來就可以了。
$env:GO111MODULE=“on”
$env:GOPROXY=“”
go env -w GOPROXY=
go env -w GOPRIVATE=*.corp.example.com
然后我們打開VsCode界面,下面會提示安裝插件,我們選擇Install ALL,就會安裝成功
當(dāng)你在運(yùn)行Go語言程序時(shí),提示所有的插件包都已經(jīng)安裝成功了時(shí),就可以正常使用了,要不然一堆報(bào)錯(cuò)會讓你非常心煩。
好了,今天先到這里,晚安、下班~
這個(gè)是命令行的程序
編寫好.go源文件,在那目錄運(yùn)行g(shù)o build xxx.go來編譯
目前大部分產(chǎn)品都用c或者c++或者其它主流語言編寫的,go產(chǎn)品還是很少
go語言工程師少
有編程基礎(chǔ)的人學(xué)go語言很簡單,但是對于新手來說太難,現(xiàn)在大多go語言教材都是給會編程語言的人學(xué)習(xí), 比如教材中說變量、對象、函數(shù)。新手能理解這些? 一個(gè)變量都的去查很多資料來了解什么是變量, 所以新手入門難, ?而老程序員又都習(xí)慣用自己拿手的語言,導(dǎo)致go開發(fā)師少。
是程序運(yùn)行太快肉眼分辨不出了,可以睡眠5秒
package main
import (
"fmt"
"time"
)
func main() {
fmt.Println("hello world !")
time.Sleep(5 * time.Second)
}
字母忘記大寫。該語言中的base58包字母忘記大寫,導(dǎo)致導(dǎo)不進(jìn)去。Go語言是谷歌2009年發(fā)布的第二款開源編程語言,它專門針對多處理器系統(tǒng)應(yīng)用程序的編程進(jìn)行了優(yōu)化。
上圖是Golang官網(wǎng)FAQ的部分截圖,看來關(guān)于Go不支持重載的這個(gè)問題困擾了很多從面向?qū)ο笳Z言轉(zhuǎn)到Go的開發(fā)者。官方在這里做出了解答。
在上面的回答中有這樣一句話:
其意思是: 使用其他語言的經(jīng)驗(yàn)告訴我們,使用具有相同名稱但簽名不同的多種方法有時(shí)會很有用,但在實(shí)踐中也可能會造成混淆和脆弱。
接下來又說: 在Go的類型系統(tǒng)中,僅按名稱進(jìn)行匹配并要求類型一致是一個(gè)簡化的主要決定。
最后一句話: 關(guān)于操作員重載,似乎比絕對要求更方便。 同樣,沒有它,事情會變得更簡單。
整個(gè)的解答非常漂亮、簡潔。我們看完之后就會理解,Go語言的設(shè)計(jì)者之所以沒有在Go中實(shí)現(xiàn)方法的重載,并沒有復(fù)雜的理由,核心原則就是: 讓Go保持足夠的簡單。 這也能看出來Go語言的設(shè)計(jì)者有著極大的選擇和克制。
其實(shí),筆者認(rèn)為重載在本質(zhì)上并沒有很大的實(shí)際意義。只是表現(xiàn)力和表現(xiàn)形式上有一定的差別。明確某個(gè)上下文中的函數(shù)調(diào)用的關(guān)鍵就是函數(shù)簽名,支持重載的語言中一般是函數(shù)名加函數(shù)參數(shù)構(gòu)成函數(shù)簽名。而Go中可以認(rèn)為函數(shù)名就是簽名。邏輯上沒有太大的區(qū)別,就是把工作做在了臺前 還是幕后的區(qū)別。
當(dāng)然如果非要較真的話,我們或許可以在Go中聲明方法的時(shí)候?qū)?shù)寫成 interface{} 或者 ... 切片的方式。在傳進(jìn)來參數(shù)的時(shí)候做一步校驗(yàn),判斷參數(shù)的類型和個(gè)數(shù),然后分別處理之。
仁者見仁智者見智,大家有什么不同的理解歡迎一起溝通。