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

查看所有标签

猜你喜欢:

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

移动交互设计精髓

移动交互设计精髓

班格 (Cameron Banga)、温霍尔德 (Josh Weinhold) / 傅小贞、张颖鋆 / 电子工业出版社 / 2015-4-1 / CNY 89.00

越来越多的人正涌入移动应用领域,而设计和体验将是移动应用成败的关键。作者通过上百款应用的设计实践,系统化地梳理了移动应用的设计方法论,在理解用户、跨平台和适配设计、移动组件应用、界面视觉感染力、简约设计等方面都进行了深入阐述。此外,作者还介绍了一些非常实用的移动设计工具,分享了设计师该如何与开发工程师协同工作,以及如何收集用户反馈、甄别版本迭代的更新需求等。 《移动交互设计精髓——设计完美的......一起来看看 《移动交互设计精髓》 这本书的介绍吧!

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

各进制数互转换器

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

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

正则表达式在线测试