go語言環境搭建

一、windows環境搭建
  一、安裝go
  二、安裝goland開發工具包python

二、test.golinux

/* 可執行文件,包名必須是main */
package main
/* fmt 字符串格式化的包 */
import "fmt"

/*main入口函數*/
func main() {
fmt.Printf("Hello, world" )

}
View Code

三、go函數定義windows

//go函數定義
func add(a int ,b int) int {
var sum int //var表示變量,sum變量名稱,int表示變量類型
sum = a+b
return sum
}
View Code

四、go語言特性
  一、垃圾回收
    a、內存自動回收,不再須要開發人員管理內存
    b、開發人員專一業務實現,下降了心智負擔
    c、只須要new分配內存,不須要釋放
  二、自然併發
    a、從語言層面支持併發,很是揀單
    b、goroute,輕量級線程、建立成千上萬個goroute成爲可能
    c、基於CSP(Communicating Sequential Process)模型實現併發

    案例:(使用關鍵字go)less

    func test_print(a int) {
      fmt.Println(a)
    }
    for i:=0;i<100;i++{
      go test_print(i)
    }

  三、channel
    a、管道,相似nuix/linux中的pipe
    b、多個goroute之間經過channel進行通訊
    c、支持任何類型ide

    /*make關鍵字,分配內存空間*/
    func main(){
      pipe:=make(chan int ,3) //定義一個pipe變量,管道容量爲3,管道相似於隊列
      pipe <- 1 //將1放入管道
      pipe <- 2
      fmt.Println("pipe長度:",len(pipe))
      var t1 int
      t1 =<- pipe //從管道取值放入變量t1中
      fmt.Println(t1)
    }

  四、多返回值
    a、一個函數返回多個值函數

    func calc(a int ,b int ) (int ,int) {
      c:=a+b
      d:=(a+b)/2
      return c,d
    }

五、包的概念(go語言不須要擔憂編碼問題,都默認爲utf8)

  一、和python同樣,把相同的功能代碼放在一個目錄,稱之爲包
  二、包能夠被其餘包引用
  三、main包是用來生成執行文件,每一個程序只有一個main包
  四、包的主要用途是提升代碼的可複用性工具


六、變量定義兩種方式
  方式1:
    var sum int //var表示變量,sum變量名稱,int表示變量類型
    sum = 0
  方式二:
    sum:=0開發工具

七、函數多返回值   (注意佔位符"_"使用)ui

func calc(a int ,b int ) (int ,int)  {
    c:=a+b
    d:=(a+b)/2
    return c,d
}

func  main1()  {
    sum ,avg:=calc(200,300)
    fmt.Println("sum=",sum,",","avg=",avg)
    a ,_:=calc(200,300) //_表示不取返回值
    fmt.Println("sum=",a,)
}

 


FAQ:

問題1:

# command-line-arguments
src\lesson-one\test.go:36: undefined: test_goroute

一個文件調用另外一個文件的函數,必須兩個文件都被編譯爲二進制文件,才能執行,不然報錯
爲了解決這種問題,能夠執行整個包
相關文章
相關標籤/搜索