go语言函数传递问题(map、切片、接口、chan)
2017-11-26 23:00
411 查看
一句话总结:map、切片、接口、函数类型、chan都是引用类型,作为函数参数传递不会复制一个副本。
package main
import (
"fmt"
)
func change(a int) {
a = 10
}
func changeMap(m map[int]string) {
_, ok := m[1]
if ok {
m[1] = "jack"
}
}
func changeSlice(s []int) {
s[0] = 10
}
func changeChan(ch chan int) {
ch <- 99
}
func main() {
key := 10
change(key)
fmt.Println(key)
m := make(map[int]string)
m[1] = "may"
changeMap(m)
fmt.Println(m)
s := []int{1, 2, 3}
changeSlice(s)
fmt.Println(s)
ch := make(chan int, 3)
changeChan(ch)
fmt.Println(<-ch)
close(ch)
}
相关文章推荐
- Go语言学习六:指针与传递到函数的指针
- go语言函数作为参数传递
- 关于 php 调用 其他语言写的Web Service SOAP 接口的参数传递问题
- GO_05:GO语言基础map与函数
- c++类内接口调用其它函数传递成员指针问题(以二叉树举例)
- go语言映射map的线程协程安全问题
- c 语言 二维数组的函数参数传递的问题
- go语言中将函数作为变量传递
- C 语言栈内存无法向父函数传递地址问题 [李园7舍_404]
- Go语言中函数的参数传递与调用的基本方法
- go语言笔记——切片函数常见操作,增删改查和搜索、排序
- Go语言的数组,切片,set,map
- 关于go语言中的Slice切片问题
- Go语言学习笔记之数组、数组切片和map
- Go语言切片前或中间插入项与内置copy()函数
- GO语言基础map与函数
- go语言将函数作为参数传递
- go语言之行--数组、切片、map
- 详解 Go 语言中 Map 类型和 Slice 类型的传递
- GO语言学习笔记3(函数接口并发)