GO-函数学习

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

内容简介:函数的参数的传递方式:在 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-函数学习》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

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

Beginning Google Maps API 3

Beginning Google Maps API 3

Gabriel Svennerberg / Apress / 2010-07-27 / $39.99

This book is about the next generation of the Google Maps API. It will provide the reader with the skills and knowledge necessary to incorporate Google Maps v3 on web pages in both desktop and mobile ......一起来看看 《Beginning Google Maps API 3》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具