学习func

121 阅读3分钟

写在前面,需要返回哪个参数,就用return 加上那个参数

func是一个代码块,不要把它需要的变量写在它的外面。想象它就是一个暗箱,无论里面有多么复杂的操作,只要我们写好了,就不要去管他。我们关注的应该是他的功能。让它自动地进行“暗箱操作”。

所以,不要把它需要的参数不小心卸载外面。

当它能够成功运行以后,我们就要以整体思维去看待它了。

我们的关注点在于它的功能:比如,它是做什么的?(计算总数,比较大小,排序等等);它需要输入的参数是什么?它会输出什么结果?

我们只关注这三点就行了。

1、功能

2、需要输入的数据

3、它吐出的数据

这就是一个函数的作用。

我觉得,它本质上就是为了减少人们的重复劳动吧!同样的事情,问题丢给他,它就能得到答案。

或者说,把上面三点改为:

1、方法

2、问题

3、答案

这就是函数的本质。

命名:

func min(_ a: Int, _ b: Int) -> Int {

return a > b ? a: b

}

a,b是参数名称,前面的通配符是引数名称。引数名称可以省略,引述名称省略后,参数名称也充当引述名称,或者说引数名称跟预设参数名称是一样的,如果什么都不写,那么参数名称就是引数名称。

这里再细说一下什么是引数,什么是参数。

引数是函数实际处理的具体数值,参数是函数定义时占位的变量。

这个函数的功能是,给min函数输入两个整数,分别是a, b,min函数对这两个整数进行操作(比较大小),输出的结果是a,b两个数种较小的数。

如何呼叫:

如果不写参数前面的通配符,则格式为:

min(a: 3, b:5)

如果写了字母前面的通配符,则格式为:

min(3, 5)

这里的return可以不写,因为只有一行,如果有多种可能的结果,就要写多个return。

虽然一个函数中可能存在多个return,但是只要有一个return返回值,这个函数就结束了。

其实这个return就是返回给大括号前面的那个Int,也就是func的结果。

大括号里面的,才是这个func的具体功能。

函数可以没有返回值,可以写为() -> Void

函数也可以没有参数。比如,函数的主体就是打印分割线print("------------")

函数中也可以放入多个引数

下面是例子:

func min(of: numbers: Int...) -> Int {

        var min = numbers.first!

        for number in numbers {

               min = number < min ? number : min

             }

       return min

}

min(of: 0)

min(of: 3, 9, -22, 888)

为什么呢?因为函数中的...可以把放入其中的引数变成一个数组Array,所以放入一个也行,放入多个也行。