golang基础(3)函数

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

内容简介:我们还是用 javascript 来做对比,在golang 语言中 func 关键字来声名函数我们在定义 foo 然后返回一个数值,需要为函数 foo 指定返回值类型,否则默认为无返回值,而且 golang 作为一门静态语言,没有 javascript 那么自由,我们函数也需要根据函数声名时参数保存一致而且调用函数时,对函数参数的类型和个数都必须严格和声名时情况保持一致。

我们还是用 javascript 来做对比,在golang 语言中 func 关键字来声名函数

func foo(){
  // do stuff...
}
func foo(){
  // do stuff...
  return 3; // foo 应该无返回值
}

foo(x,y) // 调用时应该无参数

我们在定义 foo 然后返回一个数值,需要为函数 foo 指定返回值类型,否则默认为无返回值,而且 golang 作为一门静态语言,没有 javascript 那么自由,我们函数也需要根据函数声名时参数保存一致

func foo(x string, y bool) int {
  // do stuff...
  return 3;
}
func foo(x string, y bool) int {
  // do stuff...
  return 3;
}
foo(3, false) //第一个参数应该是 string 类型
foo("hi",false,true);//参数个数

而且调用函数时,对函数参数的类型和个数都必须严格和声名时情况保持一致。

func foo(x string, y bool) int {
  // do stuff...
  return 3;
}

foo(a,b) //  编译时确定 a 和 b 类型
foo(a,bar()); //  编译时确定 b 函数返回的类型
func foo()(int, string) {
  return 3,"hi"
}
a,b:= foo() //

在 golang 语言中函数是可以返回多个值,这里 foo 函数会返回一个 数值和 string 类型的返回值,我们可以 a 和 b 变量来接受这两个返回值。

func foo()(int, string) {
  return 3,"hi"
}
a,b:= foo() // 
c:= 2 + foo() //

这里我们无法用 c 来接受 foo 函数的两个返回值

func foo()(int, string) {
  return 3,"hi"
}
_,b:= foo() //

_ 这个符号对应了解 es6 语法的 javascript 的 developer 应该并不默认,就是占位用的,可以简单这两理解,不过这里 _ 并不接受赋值 3

func foo()(int, string) {
  return 3,"hi"
}
_,b:= foo() //
c := 2 + _ //

所以我们无法给通过 _ 为变量 c 赋值,因为 _ 没有数据

func foo()(int, string) {
  return 3,"hi"
}
a := 7
a, b := foo() //

这样为变量 a 重新赋值没有问题


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

查看所有标签

猜你喜欢:

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

New Dark Age

New Dark Age

James Bridle / Verso Books / 2018-7-17 / GBP 16.99

As the world around us increases in technological complexity, our understanding of it diminishes. Underlying this trend is a single idea: the belief that our existence is understandable through comput......一起来看看 《New Dark Age》 这本书的介绍吧!

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具

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

RGB CMYK 互转工具

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

HEX CMYK 互转工具