go基础知识--指针、流程控制、函数 | 青训营

56 阅读1分钟

一、指针与引用

1.1 指针

  • 获取变量的地址,&
var num int = 8
var p *int  = &num
  • 获取值

    *p

  • 值类型, 都有对应的指针类型,形式为 *数据类型,int对应的是*int

1.2 值类型与引用类型

  • 值类型:

    1. 基本数据类型int、float、bool、string、数组、结构体struct。
    2. 直接存储值
    3. 通常在栈里
  • 引用类型:

    1. 指针、slice切片、map、管道chan等
    2. 变量存储地址,地址对应空间存储值
    3. 没有变量引用该地址时,该地址空间成为垃圾,由GC回收
    4. 通常在堆里面

二、程序流程控制

程序控制有分支控制、循环控制

2.1 分支控制

  • if-else
    if 条件表达式 {
        
    }else if 条件表达式 {
    
    }else{
    
    }
    
  • switch
    switch 表达式{
    case 表达式1,表达式2: 语句块1
    case 表达式3,表达式4: 语句块2
    default: 语句块
    
    }
    
    case语句块没有break,默认有。默认情况下执行完case后,退出switch语句 注意case的表达式类型要和switch表达式类型相同。 case表达式,隔开 表示满足之一就行 switch可以没有表达式

2.2 循环控制

for i:=1;j<=10;j++{

}
  • for-range
    str = "hahahaha"
    for index, val := range str {
        fmt.Printf("index=%d val=%c",index,val)
    }
    

三、函数

func 函数名 (形参列表) (返回值列表){
    .....
    return  ....
}