golang-3- 函数

函数是一等公民,无论什么语言函数都是重中之重。

1、函数可以没有参数或接受多个参数,下面这个例子中,`add` 接受两个 int 类型的参数。

注意:类型在变量名之后(x int, y int) 返回结果在最后 int ,这点和大部分语言相反。

<code>package mainimport "fmt"func add(x int, y int) int {return x + y}func main() {fmt.Println(add(2, 3))}//以上是打印 2+3的结果/<code>

2、函数的入参类型的省略,当两个或多个连续的函数命名参数是同一类型,则除了最后一个类型之外,其他都可以省略,如下图add函数

<code>package mainimport "fmt"func add(x , y ,z int) int { //x,y,z都是一个类型int 前面两个可以省略return x + y+z}func main() {fmt.Println(add(2, 3,4))}/<code>

3、函数可以任意数量的返回值,swap 函数返回了两个字符串

<code>package mainimport "fmt"//第一个返回值y ,第二个返回值x 返回类型要用括号包起来,里面是返回类型func swap(x, y string) (string, string) { return y, x}func main() {a, b := swap("hello", "world")fmt.Println(a, b)}/<code>

4、Go 的返回值可以被命名,并且像变量那样使用,返回值的名称应当具有一定的意义,可以作为文档使用。没有参数的 return 语句返回结果的当前值。也就是`直接`返回。直接返回语句仅应当用在像下面这样的短函数中。在长的函数中它们会影响代码的可读性。

<code>package mainimport "fmt"func addStr(x, y string) (m,n string) { //可以指定返回顺序结构m=y+"is ok"n = x + "is ok"return}func main() {a, b := addStr("hello", "world")fmt.Println(a, b)}/<code>



函数的基本使用就这些,以后的章节会介绍,怎么结合结构体去使用。