第二天

一、函数

1、无参无返回

2、有参无返回

  • 参数必为变量非常量,所以不需要var
  • 不定参数类型(1、...type,2、只能放在形参最后3、传递args...4、部分传递args[:2])

3、有参有返回值

4、递归函数

5、函数类型(用于多态,比如用于回调函数)

1、使用流程

  • 函数也是一种类型,通过type Funcname func(int ,int)int
  • 声明一个变量
  • 赋值
  • 调用

2、回调函数

  • 函数有一个参数是函数类型,这个函数就叫回调函数

3、匿名函数

  • 闭包
f1 := func(){
    fmt.Println()
}


func(){
    
}()//定义并调用
  • 闭包捕获外部变量的特点(闭包还在使用,变量就未释放)

4、defer延迟调用,函数结束前调用(清理功能)

  • 先进后出(栈)
  • 出错依然执行
  • 与匿名函数结合使用(会先传参,后面参数的变化对其执行无影响)

5、Init函数

  • 被导入就会执行init函数

6、变量作用范围

  • 局部变量
  • 全局变量

7、工程管理

1.配置

  • src文件夹
  • goPath配置

2.导入包

  • import . "fmt" fmt.Println ==.Println
  • import io "fmt" 包名-别名
  • 忽略此包 import _ "fmt"

3.工程配置

1)必须放在src文件夹下;
2)设置GOPATH环境变量;
3)同一个目录,包名必须一样;
4)同一个目录,调用别的文件函数,直接调用,无需包名;5)函数外部调用必须首字母大写

4.多文件

1)需要配置GOPATH环境变量,配置src同级目录的绝对路径
2)需要自动生成bin或者pkg目录,需要使用go install命令(需要配置GOBIN环境变量)

你可能感兴趣的:(第二天)