Go学习笔记

变量

var 声明,支持类型判断.

var name string string类型 name

var s string 值初始化

var age = 20 age 类型自动推断

height := 165 简短声明(仅限函数使用)

i,j,k := 3.8,true,100 声明一组变量

_, res := 123,321 _特殊变量名,赋予他的值会被丢弃

常量

const 声明

const Pi = 3.14 声明一个常量Pi

const(
    apple = "fruit"
    banana
    )

banana 常量未定义初始化值会与apple值相同

数据类型

boolean,整型,浮点型,字符串,错误

range 遍历map,slice

```
for i,v := range m {
        fmt.Println(i,v)
}
```

函数

func sub(x,y int) (z int) {
    z = x - y
    return z
}

声明一个方法sub,参数x,y为int型, z返回参数 int型

函数无返回值可不声明,参数也可是函数.

可以传指针或传引用操作

...int 表示传递变长的参数

defer 关键字 在函数最后执行动作的声明(延迟代码)

局部函数声明修改不影响全局,若全局有同名变量时,内部赋值会改变全局变量(非声明).

方法

方法是特殊的函数,区别于方法有前置实例接收参数(receiver)

接口

一种抽象的类型

type I interface {
    Get() int
    Put(int)
} 

声明时,不能有字段,不能自定义方法,只声明方法,不实习现.

//实现接口:
func f(p I) {
    fmt.Println(p.get())
    p.Out(1)
}

接收一个接口类型作为参数

p实现了接口I,Get(),Put()方法.