十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
這篇文章主要介紹“初學(xué)Golang語言需要注意哪些坑”,在日常操作中,相信很多人在初學(xué)Golang語言需要注意哪些坑問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”初學(xué)Golang語言需要注意哪些坑”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!
10年積累的成都網(wǎng)站建設(shè)、成都做網(wǎng)站經(jīng)驗(yàn),可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先網(wǎng)站設(shè)計(jì)后付款的網(wǎng)站建設(shè)流程,更有游仙免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
go 的基礎(chǔ)語法,我這里就不細(xì)說了,大家可以查看這個(gè)文章,學(xué)習(xí)Go 詳細(xì)的語法:http://www.runoob.com/go/go-basic-syntax.html
最好是對照上面的例子,一個(gè)一個(gè)敲出來,這樣效果最好。
下面是一個(gè)Go 程序的基本結(jié)構(gòu),包含(包聲明,引入包,函數(shù)等)
package main // 定義包名,package main表示一個(gè)可獨(dú)立執(zhí)行的程序,每個(gè) Go 應(yīng)用程序都包含一個(gè)名為 main 的包。 import "fmt" // 導(dǎo)入需要使用的包(的函數(shù),或其他元素) func main() { // 程序的入口函數(shù)。main 函數(shù)是每一個(gè)可執(zhí)行程序所必須包含的,一般來說都是在啟動后第一個(gè)執(zhí)行的函數(shù)。 fmt.Println("Hello, World!") }
不管學(xué)啥,剛開始都會遇到各種各樣的坑。下面就來總結(jié)下學(xué)習(xí)go語言的過程中,遇到的各種坑。
1. 寫C# 的人都會將 “{” 獨(dú)立一行,但是這在go 里面是錯(cuò)誤的 “{” 必須更方法體 在同一行。我第一次寫go 的就犯了這個(gè)錯(cuò)誤,還不知道錯(cuò)誤在哪。
func main() { fmt.Println("Hello, World!") }
2. if…else 語句中的 else 必須和 if 的 ’ } ’ 在同一行,否則編譯錯(cuò)誤
var a int = 30 if a < 20 { fmt.Print("a<20") } else { fmt.Print("a>=20") }
3. 包名的定義。你必須在源文件中非注釋的第一行聲明包名,如:package main。package main表示一個(gè)可獨(dú)立執(zhí)行的程序,每個(gè) Go 應(yīng)用程序都包含一個(gè)名為 main 的包。
package main
4. 在 Go 程序中,一行代表一個(gè)語句結(jié)束。每個(gè)語句不需要像 C 家族中的其它語言一樣以分號 ; 結(jié)尾,因?yàn)檫@些工作都將由 Go 編譯器自動完成。
如果你打算將多個(gè)語句寫在同一行,則必須使用 ; 人為區(qū)分,但在實(shí)際開發(fā)中我們并不鼓勵(lì)這種做法。
fmt.Println("Hello, World!") fmt.Println("www.fpeach.com")
5. main()函數(shù)是每一個(gè)可執(zhí)行程序所必須包含的,一般來說都是在啟動后第一個(gè)執(zhí)行的函數(shù)。然而,每個(gè)package 中,只能有一個(gè)main() 函數(shù),否則會報(bào)main redeclared in this block previous declaration at .. 的錯(cuò)誤。
package main import "fmt" func main() { /* 這是我的第一個(gè)簡單的程序 */ fmt.Println("Hello, World!") }
6 當(dāng)函數(shù)、結(jié)構(gòu)等標(biāo)識符以一個(gè)大寫字母開頭,如:GetInfo,那么使用這種形式的標(biāo)識符的對象就可以被外部包的代碼所使用,這被稱為導(dǎo)出(像面向?qū)ο笳Z言中的 public);標(biāo)識符如果以小寫字母開頭,則對包外是不可見的,但是他們在整個(gè)包的內(nèi)部是可見并且可用的(像面向?qū)ο笳Z言中的 protected )。
// 公有函數(shù),可以被外部包的代碼所使用 func Test() { . . . } // 私有函數(shù),包的內(nèi)部是可見、 func test2() { . . . }
7. 標(biāo)識符用來命名變量、類型等程序?qū)嶓w。一個(gè)標(biāo)識符實(shí)際上就是一個(gè)或是多個(gè)字母(A~Z和a~z)數(shù)字(0~9)、下劃線_組成的序列,但是第一個(gè)字符必須是字母或下劃線而不能是數(shù)字。
以下是無效的標(biāo)識符:
1ab(以數(shù)字開頭)
case(Go 語言的關(guān)鍵字)
a+b(運(yùn)算符是不允許的)
8. 錯(cuò)誤 no new variables on left side of := ,意思是,“左邊一個(gè)新的變量也沒有!”
func main() { var b int = 20 b := 30 fmt.Print(b) }
解決辦法就是:對于x,y:=....這種形式,只要把其中的一個(gè)變量命名成新的就可以了。
9. 不能使用++自增或- -自減運(yùn)算符初始化變量和對變量賦值
package main import "fmt" func main(){ var a int = 10 var b int = a++ var c int = 20 c = a++ fmt.Print(a, b, c) }
到此,關(guān)于“初學(xué)Golang語言需要注意哪些坑”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!