4. Go语言—值类型和引用类型

一、值类型

1. 定义

​ 变量直接存储的值,内存通常在栈中分配; var i = 5 -> i-->5

2. 应用

int、float、bool、string、数组、struct

二、引用类型

1. 定义

​ 变量存储的是一个地址,这个地址存储最终的值。内存通常在堆上分配,当没有任何变量引用这个地址时,该地址对应的数据空间就成为一个垃圾,通过GC回收。

ref r--->地址--->值

2. 应用

指针、slice、map、chan、接口

三、实例

package main

import "fmt"

func swap(a *int, b *int) {
    // 获取指针地址指向的值
	tmp := *a
	*a = *b
	*b = tmp
	return
}

func main() {
	one := 100
	two := 200
    // 获取指针地址
	swap(&one, &two)
	fmt.Println("one:%d", one)
	fmt.Println("two:%d", two)
}

posted @ 2019-06-23 10:35  qi.hu  阅读(741)  评论(0编辑  收藏  举报