go中函数参数和PHP中类似,区别是go中的函数参数必须是指定类型的(这是必须的).
go的函数体中如果有
return
关键字返回,那么此函数必须以return
或panic
结尾
按值传递和按引用传递
Go中默认是按值传递,和PHP中类似.引用传递也和PHP类似,变量前加上&
比如funA(&arg)
,此时传递的是一个指针,当传递指针时,这个指针的值(变量指向的地址)会被复制,但指针的值所指向的地址上的值不会被复制.其实本质上,指针传递也是按值传递,只不过此时传递的是指针的值.
传递指针给函数不但可以节省内存(因为没有复制变量的值),而且赋予了函数直接修改外部变量的能力,所以被修改的变量不再需要使用 return
返回
切片(slice)、字典(map)、接口(interface)、通道(channel)这样的引用类型 默认使用引用传参(即使没有显示的指出指针,类似 PHP 中把对象实例作为函数参数
1 | package main |
返回值以及返回值命名
1 | package main |