Go 语言func 传递参数的区别

  1. 普通变量:
    只是对变量值的拷贝:实参复制给变参,对变参的操作不影响实参
  2. 指针:
    传递指针地址,对变参的操作会影响到外面的实参
  3. 数组:
    传递复制的值,对变参的操作不影响实参
  4. slice map chan
    传递地址拷贝,对变参操作会影响实参
  5. 函数名
    传递一个函数名做为另一个函数的参数,其默认值为nil

golang用另外一种做法来实现属性的访问权限:属性的开头字母是大写的则在其它包中可以被访问,否则只能在本包中访问。类的声明和方法亦是如此

Go语言中所有的类型都是值类型,

即这些变量在传递给函数的时候将发生一次复制