粉丝981获赞3026

大家好,这一节我们来讲解呃函数当中的缺损参数,那么前面一节呢,我们讲述了函数函数怎么定义,怎么使用,我们已经知道了,在定义函数的时候,里面需要 或者说不一定完全需要了,你可以定义参数,也可以不定义参数,那么这里我们为参数增加一个新的内容,就叫缺损参数。 那么这里面包括什么是缺损参数,以及啊缺损参数的使用实力。 好,我们先来讲解一下什么是缺损参数。缺损有时候也翻译成默认,那么所谓缺损参数指的就是就是这个参数 他默认已经有值了,什么意思呢?就是你在定义这个函数的时候, 其中某一个或某几个参数,你在定义函数的同时为他指定了默认值, 那这样子呢,就是可以让使用这个函数的人在用的时候可以不用为那些缺损参数传值。 那么我们直接通过这个底下的一段描述,一个例子的描述来说明这个问题。第一说明怎么定义确省参数,第二怎么样调用的时候可以传值和不传。 好,下面你看他的写法很简单,点点就是点发音的那个单词的前三个字母,那么定义后面跟上函数名, 那么我们建议函数名啊都用小写,如果你需要有多个单词,你就用下划线把它们分割开来, 然后括号里面我们可以有参数一,逗号参数二,逗号参数三。哎,这个地方你注意,我这里多加了一个等于号 后面跟上一个缺损值,这就是在定义参数的缺损值。所谓的缺损参数就是如果 人家使用这个函数的时候没有给参数二传值,那么函数在运行的时候就使用这个缺损值作为参数二的内容。 同样参数三也是,如果没有指定调用这个函数的时候,没有为参数三指定缺损值而指定这个数值,那么我们就使用这个缺损值作为参数三的内容。 下面函数体还是一样。那么对于使用者来讲呢?你调用这个函数的时候,函数名括号,哎,你可以只传一个参数,为什么?因为第二个和第三个参数他有缺损值了。你也可以说,哎,我 传第一个和第二个,第三个不传,表示什么意思?表示第一个参数和第二个参数以我这里传入的数据为准。 虽然你第二个有缺损值,但我不想用,我想给你传一个我希望的纸,参数三,我希望还是用缺损纸。第三种写法就是,我管你缺损不缺损,我都给你传我希望传的纸, 是吧?都可以,这就是缺损参数和如何使用。那么这里呢,我写了一个很简单的例子,比如说 你定义了一个函数叫三的一秒叫发邮件,那发邮件他可能需要这样 几个参数,需要别人告诉你的。第一就是我可以,我这个函数可以帮你发邮件,但是至于你发给谁,你的目标邮件地址,你得告诉我你邮件的标题,你得告诉我 你播的你就是你邮件的内容,你得告诉我。然后呢?你想抄送给谁,你得告诉我这些信息,告诉我之后怎么发,我这个函数帮你做 是吧?我怎么连邮件服务器怎么样?把这个转成一个邮件的具体的格式怎么样?给你送出去,这是我的事,但是你得给我这些信息,这就是这个函数的任务。 那么在正常发邮件的时候,目标地址你肯定得有,你没有,我怎么知道发给谁,对吧?对于我发邮件的人来讲,我必须需要,我没办法给你指定一个默认的邮件地址,这不行, 对吧?邮件的标题和邮件的内容肯定是你要告诉我的,但是操送给谁?很多人在发邮件的时候,他并不需要操送给别人, 所以这个时候如果我让人家不需要操纵的人,非要传一个直径来,岂不是麻烦,对不对? 所以为了给吊用者提供方便,那我把这个 cc 就是操送给谁这一块,我定义了一个默认值为空,意思就是你吊用 我这个函数的时候,你可以给第一个参数,第二个参数,第三个参数,第四个,你可以不用给,不用给我就使用空作为他的内容,意思就是不用 cc 给谁, 但是使用者不需要再传一个空进来了,人家不想 cc 还必须传一个空进来,这不是给使用者制造了一些障碍吗? 所以我们为了与人为善,是吧?让人家用起来方便,所以我们用缺损值来做这么一个事情,对吧?底下吊用的人,你看你可以这么吊,你说我想 cc 给另外一个人,你也可以传值进来, 这是我这里用啊 ppt 里面做的一个例子,那么我们呢?实际来敲一个例子是吧?比如我们定义一个函数,这个函数呢?呃,刚才那个例 一直叫剩的一妹啊,我们随便叫一个什么函数吧,比如说这个函数,我想,嗯,我想计算一个数的多少次方, 是吧?我想计算一个数的多少次方,那么嗯,比如说我们就要怕我,然后呢?这是这个数, 他是一个整数,然后呢?后面是一个呢?这个次方,我们叫他 p, 然后 int 就是 number, p 四方,就这个意思,那么这个里面其实我们直接锐称一个 number, 这样 p 就可以了, 这本来就是一个计算一棵树的多少次方。当然了,我用函数封装只是为了演示一下缺损函数的一个任务,然后我们可以打印,打印什么呢?打印吊用这个怕,我给他传一个二的三次方,希望他把结果给我, 结果给我打印出来,是吧?好,这样子呢,你,呃,运行一下这个面好了,二点三四方打印一个八出来了,好,那么我们在这个地方呀, 是吧?这是一个整数,你可以给他指定一个。什么呢啊?你可以给他指定一个缺损值,叫二,其意思就是说,其意思就是说你可以记 算一个数的多少次方,这么来调,如果你正常要计算的是一个数的平方,你可以不用传第二个参数,你就传一个二,是吧?我们来打印一个 power, 直接传个二进来,这意思就是计算二的二次方, 你如果想计算二的二次方,你后面第二个二不用传了。为什么?因为我这个函数给你指定了默认值,他就是二, 你要计算三十方,四十方,你就得给我传了,为什么你不传我就用,我就用二,你传我用你这个数,这就是默认值的意思。 那么同时我们要多说一点,大家注意,你看在吊用函数的时候,你给他传递参数,你得按照人家函数里的参 参数的顺序来传递,也就是说人家说的第一个是,那么你这里传的二就是传给,那么你这个二不是传给屁的, 是按照顺序来的。所以具有默认值的这一些参数一定是在后面,他不能在前面。当然你可以所有的都有默认值,但一旦有一个没有,一定是第一个没有,而不是最后一个没有。 明白我的意思了吧?就是你要想有默认值,比如说这里我有两个阐述,你说我可不可以第二个没有默认值,但第一个有,哎,不行, 你试想一下嘛,如果我这个没有默认词,我这个有默认词,首先 这个地方编译就已经报错了哈,假设他不报错,你去试想一下,这样行不行?你看我掉这个函数,我传了一个二进来,你说这个二是传给谁的?是传给第二个的吗? 对于编译器来讲,很难识别这件事情,很难识别这件事情,对吧?你再举个更复杂的例子,如果我前面还有一个,还有一个呢, 对吧?我还有一个,然后你再传,就是你很难告诉编译器,我应该把这个词传给第几个,这很难。 所以这个时候你要知道缺损值一定是在后面,而不是在 在前面,而不是在前面。当然你可以每一个都有缺损值,但一定是从后往前推, 对吧?你如果有一个缺肾值,一定是最后一个参数,你有两个,一定是倒数第一个和第二个有缺损值,就按照这个顺序来类推就可以了。 那么这里我们讲述的就是一个默认参数,默认参数在我们定义函数的时候,嗯,使用的还是比较频繁的。正常情况下,当你在涉及函数的时候,某一些参数,你希望用户在用的时候 一定要传值,那这时候你就不要设计成默认参数。如果你希望说,哎,用户可以为了用户方便,大部分情况下这个词应该是个什么词?比如说人家调你这个函数一百次 有九十次,第二个参数或者最后一个参数都是这个值,那你就可以把它设计成缺损值,那人家掉一百次的时候有九十次,人家就可以不用传最后一个参数,这样写起来岂不是方便一些,对不对? 好了,这个缺损参数,那我们就讲这么多,好,谢谢。



