周威学Go从入门到放弃第六篇(传址?传值?)

不说了,都在酒(代码)里 

package main

import (
	"errors"
	"fmt"
)

/* & 获得地址  *获得值 */
func main() {
	defer fmt.Println("程序已结束。")
	a := 100
	b := 10
	fmt.Println("print address :", &a, &b)
	fmt.Println("print value :", *&a, *&b, a, b)
	deliver(a, b)
	fmt.Println(a, b)
	err := transmit(&a, &b)
	if err != nil {
		fmt.Println(err)
	}
	fmt.Println(a, b)
}

//传值
func deliver(a int, b int) {
	temp := a
	a = b
	b = temp

}

//传址
func transmit(a *int, b *int) error {
	temp := *a
	*a = *b
	*b = temp
	return errors.New("随便打印一个异常玩玩,传址才能实现形参值得改变")
}

猜你喜欢

转载自blog.csdn.net/iphone4grf/article/details/81515099