GO學習Day1

golang語言特性

1. 垃圾回收python

  a. 內存自動回收,不再須要開發人員管理內存linux

  b. 開發人員專一業務實現,下降了心智負擔golang

  c. 只須要new分配內存,不須要釋放併發

 

2. 自然併發函數

  a . 從語言層面支持併發,很是簡單線程

  b. goroute,輕量級線程,建立成千上萬個goroute成爲可能unix

  c. 基於CSP(Communicating Sequential Process)模型實現blog

  

func main() {
    go fmt.Println(「hello")
}

3. channel ip

  a . 管道,相似unix/linux中的pipe內存

  b. 多個goroute之間經過channel進行通訊

  c. 支持任何類型

func main() {
  pipe := make(chan int,3)
pipe <- 1
pipe <- 2
}

4. 多返回值 

  a. 一個函數返回多個值

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

  第一個golang程序

1. hello world,在目錄下新建hello.go 

  

package main

import(
    「fmt」
)

func main() {
    fmt.Println(「hello world」)
}

  

包的概念

1. 和python同樣,把相同功能的代碼放到一個目錄,稱之爲包

2. 包能夠被其餘包引用

3. main包是用來生成可執行文件,每一個程序只有一個main包

4. 包的主要用途是提升代碼的可複用性

包的實戰:

  1. calc目錄

  2. 在calc目錄下新建calc.go

package calc

func Add(a int, b int) int {
    return a + b
}

  3.  修改hello.go代碼,以下

package main

import(
    「fmt」
    「calc」
)

func main() {
    sum := calc.Add(3,5)
    fmt.Println(「hello world,%d」,sum)
}
相關文章
相關標籤/搜索