Go語言的HelloWorld

來源:互聯網
上載者:User
最小結構
package main//聲明包--沒有分號,編譯器層級自動添加分號,表明該檔案裡的函數屬於哪一個包import (//匯入包--程式中需要使用哪些包就需要事先匯入。import匯入的包可以用小括弧括起來,小括弧後面沒有分號    "fmt"//常用於輸入輸出    //多個包之間直接換行,不需用逗號或者分號)func main(){//所有的可執行程式都需要一個main函數,main函數沒有傳回型別,而且處於main包裡面    fmt.Println("Hello Golang")//沒有分號}
基本特點

強型別語言,在運行時就不必再推導變數類型了,所以比其他類型語言效率高
var 變數名 變數類型

聲明了變數一定要使用,為了同統一風格;

左大括弧一定是在一行的最後,不能是開頭,為了風格統一;

所有的可執行程式都需要一個main函數,main函數沒有傳回型別

函數可以帶參數,形參的聲明格式和變數一樣

變數的隱式聲明:變數名 := 運算式 編譯器會自動推導變數的類型

同一個包名裡的函數可以互相直接調用,省略調用前面的包名;如果不在一個包,需要先聲明包名,在調用的時候在首碼的位置加入包名; 包名.函數名(參數列表)以及包名.變數名

使用gofmt工具對源碼格式進行調整,使用-w選項進行回寫入源檔案 語言特性 記憶體回收–自動管理記憶體,只需要new,不用擔心delete,在Go中是make對應new。 天然並發–語言層面支援並發,在CPU多核時代大大提高開發效率;goroutine輕量級線程,基於CSP模型。一個Go進程就可以充分使用多核的特性。redis-單進程單線程–需要多執行個體;Nginx–多執行緒模式;傳統並發—線程池容量與CPU核心數有關,否則會增加CPU負載;Go語言在執行階段程式庫裡面啟動了16個或者64個物理線程。實現了goroute的線程調度。 channel(管道)–類似於Linux中的pipe,用於goroutine之間的通訊,適用於所有類型(還可以使用全域變數(不推薦),要注意包內的可見度–大小寫)

package mainimport (    "fmt")func main() {    pipe := make(chan int, 3)//make類似於new/malloc,用於分配記憶體                //chan表明是開闢一個channel類型的空間                //int表明channel裡面的元素是int類型,3是channel的容量                //超過容量會阻塞,等待channel被消耗有多餘空間,才會把內容寫入channel                //預設情況下會提前暴露出現阻塞的位置(如果沒有其他goroutine,發生阻塞,go的執行階段程式庫會認為發生死結deadlock)    pipe <- 1    pipe <- 2     pipe <- 3    var t1 int    t1 =<- pipe    pipe <- 4    fmt.Println(t1)    fmt.Println(len(pipe))}

4.多傳回值

func My_func(a int,b int)(int, int){//多個參數和傳回型別之間用逗號隔開    sum := (a + b)    avg := (a+b)/2    return sum,avg//多個傳回值之間用逗號隔開}

使用底線來拋棄函數傳回值 包的概念 應用程式都有一個main包,main包裡面有且僅有一個main函數;應用程式有且僅有一個main包 把相同功能的或者功能相關的程式碼群組織在一個目錄,這個目錄就是包;Go是通過包來組織代碼的,任何一個源檔案都必須屬於某個包。沒有包就沒有其他代碼—模組劃分,和檔案夾對應,同一個檔案夾下的go檔案的package 包名都必須一樣 包可以被別的包引用 包的主要用途是為了提高代碼的可複用性

//Calc.gopackage calcfunc Add(a int, b int) int{    sum := (a + b)    return sum}//main.sopackage mainimport (    "fmt"    "calc")func main() {    sum := calc.Add(3,5)    fmt.Println("sum= %d",sum)}

微服務:每個服務獨立,不依賴於其他模組 編譯 設定好GOPATH環境變數為自己的工作區,也就是項目源檔案的存放目錄或者其上層目錄 預設會在GOPATH下面的src目錄開始找go源檔案,所以只需要從src的下一級目錄開始指定要編譯的整個包 產生的exe可執行檔會出現在GOPATH目錄下,用go build 的時候最深層次的目錄名命名

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.