3.7 指针

一、指针

  1. 指针不能运算

  2. 值传递与引用传递

    1. 值传递:将值进行拷贝,原数据没有变化

    2. 引用传递:将引用地址进行传递,原数据发生变化

    Go语音只有值传递

  3. 参数传递:

    1. 简单参数:值传递

    2. 指针简单参数:引用传递

    3. object类(Cache类型):引用传递

    // 值传递举例
    func swap(a, b int) {
    	b, a = a, b
    }
    
    // 引用传递
    func swap2(a, b *int) {
    	*b, *a = *a, *b
    }
    
    // 建议方法(不使用指针)
    func swap3(a, b int) (int, int) {
    	return b, a
    }
    
    
    func main() {
        // 值传递:普通传递
    	a, b := 3, 4
    	swap(a, b)
    	fmt.Println(a, b)
    	// 引用传递
    	swap2(&a, &b)
    	fmt.Println(a, b)
    	// 建议方法(不使用指针)
    	a, b = swap3(a, b)
    	fmt.Println(a, b)
    }

Last updated

Was this helpful?