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)
}
相关文章
相关标签/搜索