GO-函数学习

栏目: Go · 发布时间: 5年前

内容简介:函数的参数的传递方式:在 Golang 中函数调用参数均为值传递,函数在穿参的时候,都是以值的方式传递

函数的声明

  • go的函数声明通过 func 这个关键字, params 是他的形参设置, result 是他的return值
  • 当设置 params 后调用 func 必须传入对应函数参数,当设置 result 后也必须有 return ,且 paramsresult 类型符合声明的
func name(params) (result) {
}

// 普通函数的声明
func getMax(num1 int, num2 int) (min int, max int) {
  // 推荐直接赋值给需要return的值
  if num1 > num2 {
    max = num1
    min = num2
  } else {
    max = num2
    min = num1
  }
  return // 每一个函数必须要有return
}

可变参数类型函数

  • 可变参数一般被放置在函数列表的末尾,前面是固定参数列表,当没有固定参数时,所有变量就将是可变参数。
// 可变参数类型
func getArr(a ...int) (length int) {
  length = len(a)
  return
}

// 部分参数是可变参数
func getLen(a int, c ...int) (length int) {
  length = len(c) + a
  return
}

函数的参数传递

函数的参数分为两种:

  • 实际参数(实参): 实参的本质是一个变量,它可以是变量名、数组名、常数或者表达式,已实际占用内存空间
  • 形式参数(形参): 形参本质是一个名字,不占用内存空间
// 实参
func shiCan(a int, b int) (result int)  {
  result = a + b
  return
}

func main() {
  shiCan(1, 4)
}


// 形参
var a int =  3
var b int = 5

func xingCan(a int, b int) (result int)  {
  result = a + b
  return
}

func main() {
  xingCan()
}

函数的参数的传递方式:

在 Golang 中函数调用参数均为值传递,函数在穿参的时候,都是以值的方式传递

例子一:(int类型)

func add(num int) (result int) {
  fmt.Println(&num)
  return num
}

func main() {
  num := 10
  result := add(num)
  fmt.Println(&num)
  fmt.Println(result)
}

例子二:(array类型)

func add(num [1]int) (result [1]int) {
  num[0] = 1
  fmt.Println(num) // [1]
  return num
}

func main() {
  num := [...]int{10}
  result := add(num)
  fmt.Println(num) // [10]
  fmt.Println(result)
}

例子三:(指针类型)

func modify(value *int) {
  value = nil 
  fmt.Println(value) //  0x0
}

func main() {
  a := new(int)
  modify(a)
  fmt.Println(a) // 0xc000040780
}

以上所述就是小编给大家介绍的《GO-函数学习》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

分布式算法导论

分布式算法导论

特尔 (Gerard Tel) / 电子工业出版社 / 2003-7 / 59.00

《分布式算法导论(第2版)(英文版)》由电子工业出版社出版。一起来看看 《分布式算法导论》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具