GO学习Day1

golang语言特性

1. 垃圾回收

  a. 内存自动回收,再也不需要开发人员管理内存

  b. 开发人员专注业务实现,降低了心智负担

  c. 只需要new分配内存,不需要释放

 

2. 天然并发

  a . 从语言层面支持并发,非常简单

  b. goroute,轻量级线程,创建成千上万个goroute成为可能

  c. 基于CSP(Communicating Sequential Process)模型实现

  

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

3. channel 

  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)
}

  

posted @ 2020-05-14 17:59  lcsp  阅读(261)  评论(0编辑  收藏  举报