This is an explanation of the video content.
 用技术延续对ACG的热爱
96

 |   | 

Go_05 值类型和引用类型

Go值类型和引用类型

[TOC]


写一个程序获取当前运行的操作系统名称和PATH环境变量的值,并打印在终端

package main
import(
	"fmt"
    "os"
)

func main(){
    var goos string = os.Getenv("GOOS") 
    path := os.Getenv("PATH")
    fmt.Println("The operating system is %s\n",goos)
    fmt.Println("Path is %s\n",path)
}

1578798221422


1.值类型:变量直接存储值,内存通常在栈中分配 基础数据类型:int,float,bool,string以及数组和struct

1578798372103

2.引用类型:变量存储的是一个地址,这个地址存储最终的值。内存通常在堆上分配。通过GC回收 引用类型:指针,slice,map,chan等都是引用类型

1578798448456


写一个程序用来打印值类型和引用类型变量到终端,并观察输出结果

package main
import(
	"fmt"
)

func main(){
	a:=100
	b:= make(chan int , 1)
	fmt.Println("a=",a)
	fmt.Println("b=",b)
}

1578799584288


写一个程序,交换两个整数的值。比如: a=3; b=4; 交换之后:a=4;b=3

package main
import(
	"fmt"
)

func swap(a int,b int){
	temp := a
	a=b
	b=temp
	fmt.Println("a=",a)
	fmt.Println("b=",b)
}

func main(){
	a:=3
	b:=4
	swap(a,b)
}

1578800362291

96 服务端 ↦ Go从0到1手把手教程 __ 92 字
 Go从0到1手把手教程 #6