以下场景只是假设,请勿纠结~
值传递
package main
import "fmt"
func test(n int) (int) {
n++
fmt.Println("n=",n)
return n
}
func main() {
num := 20
test(num)
fmt.Println("num=",num)
}
小A这个月准备买房,去登记办手续,发现身份证( num )过期了(分秒必争啊),于是,去办了一张临时身份证( n ),然后就匆匆忙忙去办手续了( n++ )。结束后( return )去领钥匙发现,系统里并没有登记自己的身份证号( n=21, num=20),这首付完了...必须要打官司...
引用传递
package main
import "fmt"
func test(n *int) (int) {
fmt.Printf("n1的地址为%v
",&n)
*n++
fmt.Printf("n=%v
",*n)
return *n
}
func main() {
num := 20
fmt.Printf("num的地址为%v
",&num)
test(&num)
fmt.Println("num=",num)
}
小A败诉,回来后老老实实办身份证( *int ),重新看了一套房去办手续( *n++ ),终于办完了,然后查了系统( return *n ),信息完整( n=21, num=21 ),这下终于能装修了。年轻人缺少社会毒打...