00:00
好,我们就来上课,那上节课呢,我们介绍了我们特语句的作用啊,这节课呢,我们再来看我们函数的参数,那么光靠我们函数的结构可能无法满足我们的这个需求,因为我的函数就是帮我们实现一个功能,对吧?那么这个功能的要求可能是需要变化的,那么就像我们的表格一样,有可能是三行五列,有可能是五行三列,对不对,那么根据不同的要求,我们就可以用什么呢?用参数来去改变啊,好了,那一样我们先来看一下,在这里面。我新建一个文件。叫做零六啊参数咱们起个叫做呃,PI'MP'm.PP。好,然后呢,在这里面一样,我们还是一样定义一个。一个函数对吧,比如说我们定义什么,定义这么一个表格吧,还是定义一个表格啊,F u nc function,然后table。然后这里面,比如说我们给他这个。A口一个铁边。
01:00
然后给那个宽度。等于一个。一个结束的table。然后在这里边我们再来艾TR。结束的提案好了,那比如说我们先做一个十二十六的表格啊,那十二十六表格是不是在这一行当中,我们要输出十个TP啊。TD等于零。然后。TD。小于小于小于十对吧,然后TD。在家。好了,这里边我们来艾一个PD。结束的题。分割连接,把TD棱里面跟他输出对吧?好了,这是我的一行十列的表格对吧,那么写十二十列的话呢,那我在这个外层是不把这个行再给它循环一下对吧?那也就是说。
02:11
For you。到七等于零。到了天。小于十劳气压再加好了。那么现在我们做的是一个十行十列的表格,对吧,那这里边一样,我就把这个TR也给连一下吧,让他一起输出了啊来到了TR。脸上到了7D。好了,那现在完成以后。我们再来看。什么都没有输出对吧,因为我们说了函数啊,是不调用不执行的,那现在干嘛,我们去调用一下我们的table啊,Table调用。登一下,然后这个时候再来刷新,你看十行十列表格是不是有了有了,但是现在呢,有个问题,什么问题呢?就比如我想要个三行五列的怎么办。
03:07
那这个时候。是不是我就需要有参数来去改变了,对不对,因为咱们说了咱们需求只要去变化的话,那么就需要用什么用我们的参数去来调整,那比如说这里边我给他定义一个变量叫什么呢?糟了肉。然后再来一个。刀扣CL对吧,那这里面行呢,我就不再用十了,而是用这个刀了肉,而这个列呢,我也不再用十了,而是用这个刀了扣,那现在写完以后,那么这个时候我再来刷新它会报错对吧?告什么呢?告诉我参数就要参数对不对?哎,在因为他给我定义了什么。人家定义了这个参数,所以我在传的时候,我在调的时候就必须传什么。对应的时参对不对?哎,大家记住啊,在我们定义函数里边的这个括号内,所定义的这个参数叫做形参,形式上的参数在我们调用函数这个括号内呢,我们所定义的参数叫做实参,实际使用的参数实际上就是把这个实参的值赋值给了行谁呀?赋值给了这个行参啊,那你看在我们赋值的时候,是不是在这个前面在我的这,因为咱们是用的编辑器,对吧?在编辑器的前面,当我给的这个十的前面是不是给了一个肉,这个十前面是不是给了一个空,什么意思?就代表的是这个十会复制给谁,是不是复制给这个肉变量,而这个十呢,复制给谁?复制给这个扣变量,现在我是十行十列的,那比如说我要十行五列的。
04:27
那再来一个table对吧,我给个十行五列,那这个时候你看是不是一样,十复制给谁,是不是复制给了我这个肉变量对吧,而这个五复制给谁复制复制给了扣变量嘛,那现在你看在我的这个页面中是不是就多了一个什么十行五列的表格对不对。哎,这就是咱们的这个参数啊,那么另外我们参数呢,也可以有默认值啊,比如说在这里面我给他一个这个十。对吧,比如说它默认让他为十了,对不对,那当默认为十的时候,我给他后面把啊。注意我只给一个啊,比如说肉我不给了,我给空为十,当我只给他为十的时候,那这个时候你再来看啊,刷新有变化吗?没有。
05:08
因为什么?因为我行参有默认值,我给了他一个默认为十的,对吧,这只是形式上的参数,如果我在调用的时候没传,比如这里边咱们来看啊ta table我什么都没传。TB。这时候再来看刷新,他就孩子报错。孩子告诉我们缺少参数吧,那好,那因为什么缺少参数,因为这个值我是不是没给默认呢?对不对,那这里面比如说我再给了一个默认值啊,也给了一个十做默认好了,那现在再来刷新,你看是不是默认就是十行十列了,对不对,那么能不能改变呢?可以啊,因为咱们说了最后以谁是不是以实际的参数为主啊,你比如说这块我给了一个三行五列,对吧,那同样是不是相当于我这个行参,行参在这里边又重新赋值了,对吧,把谁呀,把三赋值给了肉,把这个五赋值给了扣啊。是不是这样的,哎,所以这个时候你看我拿到的是不是一个三行五列的表格。
06:03
看到了吗?是不是三行五列,哎,这就是咱们的这个。行参啊,这是咱们行参和实参啊,那么再来看啊,也就是说我们再去定义的时候,其实我们参数是分分为什么分为两部分对不对啊,一部分什么是形式上的参数,一部分什么是实际使用的参数啊,那OK,我们来看一下笔记,笔记这里边我给大家记,你看这个参数分为什么行参跟实参两部分对吧?行参就是什么形式上的参数在定义的函数的括号中使用,而实参呢,是实际使用的参数在调用函数的框中使用啊,一定要记住啊,那OK,那么我了解了行参跟十参以后啊。我们再来看看什么呢?来看这个要注意的这些内容啊,比如说在这里边我们换一个我在这块,同样我再建一个PK文件啊,比如说叫做07A argument嘛,Art argument。好了,然后在这里面呢,我们来做一个什么呢?我们来做一个这个创建游戏角色的功能啊,那这里边比如说f UC function c t一个person游戏角色,对吧?那么游戏角色有什么,要有姓名吧,要有什么性别吧,对吧,还有游戏的这个你选的英雄的这个职业吧,比如说这里边。
07:18
嗯,再来一个职业叫drop吧,是吧,然后呢。我们刚开始输入完这些信息以后,当我们一点击创建角色的时候,是不是就进入到游戏里边来,进入到游戏里面,我们默认是不是也这个会给一些初始化的装备,对不对,所以这里面我们给了一些,比如说有什么呢?有这个刀了,呃,头。对吧,然后还有什么呢,还有这个,呃。头我给他默认的吧,比如说这个叫做头,叫天尊头。天尊头,比如说我们写这个传奇了,对吧,天尊头,然后呢,再来投完了之后还有什么,还有这个,呃。
08:02
孙子对吧,比如说叫做C。啊,叫什么呢,叫做这个,呃,麻袋。啊,然后再来一个武器就是刀了,这个武器啊,等于什么呢?等于这个叫做呃,小木件。小木匠。好了,比如先给这些啊,那已经够了,那这个时候咱们来看啊,我在定义函数的时候,是不是这个行参有的我复制默认值了,有的是不是没有复制默认值。对不对,哎,那OK,那不管你赋值了还是没赋值,那么接下来我在这里面先去写它的内容,比如说这里面有什么有姓名。对吧,然后什么还有这个有。性别,然后还有职业。职业对吧,这些是要求什么要求必须输入的,对不对,因为他没有默认值嘛,所以这里边比如说这个我来艾一个艾口一个什么角色的姓名是。
09:01
So name am me,好了,连上一个BR。然后性别再来艾一个。角色的。性别是。走了,Six。然后职业再来艾一个。角色的职业是?走了。知道吧。来个B2好了。那是它的基本信息对吧,那咱说了他进入了游戏,游戏以后会有一些初始的默认值对不对,所以在这里面我们来写一个叫什么叫做这个,呃,初始的这个默认。装备啊,那我来艾口一个叫做。角色的这个,呃。这个角色的了,就头顶吧。到了he。来个B啊。再来艾口一个。
10:00
然后比如说我们还有什么,还有先生是吧,3P。Dollar c l z h。Yeah。然后再来口一个,然后手拿。So。五七好给这么多,好给这么多以后,现在我们来看啊。一样,我们到刷新页面的时候。什么都没有对吧,因为什么,因为我没调用,那么当我调用的时候,比如说在这里面我们去调用一个这个CT person对吧,调用完我不传参数,是不是这个时候会报错对不对?那么也就是说我们只要是什么,只要是定义了行参,那么在调用函数的时候,是不是就必须传入对应的实参才行啊。对不对,也就说在这里边,你比如说啊。我这些东西先不给。来这里面是有一些有默认值的,哎,有默认值的我先不给我放,那然后先放到这里,先放着啊先放着。我把它注释掉啊,注射掉好了,这些我也给它注掉,因为这些变量是没有啊,再给它注射掉啊,现在你来看我这里面是不是都是没有默认值的形态对不对,那么这个时候我刷新是不是也一样是报错的对不对,也就是说第一点我们看到了干嘛呢。
11:14
在这里你看如果函数有定义形参,那么在调用函数必须传入什么对应的时参对不对?因为行参没有默认值的情况,如果形参有默认值呢?也就相当于比如说我们把这个。再拿过来。把它替换掉,好,这些形态是有默认值的,对吧,那这个时候你看啊,我把它把他们组织掉啊,这些是给默认值的,来你再来看,我再来刷新。是不是不会报错了?对不对,哎,这时候是不会报错了啊,我这里面调没调用来看一下啊。这呢啊,给他给他们开起来。再来刷新,你看头顶天针头,身披麻袋,手拿小木架,是不是都有默认值啊,哎,也就是说当他有默认值的时候,我是不是就可以传入,可以不传入刑参了,对不对?但是呢,如果刑参和这个13同时都有默认值,它以谁为主,是不是以13值为主,比如说这里对咱这个叫什么,这个叫做天尊头对吧,比如我给他改一个什么,改一个锅盖。
12:13
锅盖,那你这个时候你来看中是不是头顶锅盖是不是以谁是不是以传入的实参值为主啊。对不对,哎,相当于什么,相当于咱们变量的赋值啊,好了,那这回再把这个程序还原成默认的啊来。火焰,火焰。好了。来看啊这些现在这里边是不是有没有默认值的,还有有默认值的对吧?哎,这里边那咱说了,当我调用函数的时候,如果他有默认值的,我是不是就必须得传参数,对吧?所以我需要在这里面,比如说姓名叫什么呢?咱们起一个就比如说叫做这个。拎着脑袋。拎着脑袋散步是吧?哎,这是用户名,然后呢,这个性别呢,比如说咱们给一个男男对吧,然后这个职业呢,比如说来个导。
13:09
那这个时候我们再来看走泥。那你看您的您的性名是什么,拎着脑袋散步对吧?您的性别是男,你的这个职业是道士,然后头顶贴砖头对吧?身披麻袋手拿小木件看到吧,哎,这个时候是不是就可以了,不会报错了,也就是说如果你的参数里边只要有什么,只要没有默认值的行参,你的调准是不是必须传入值啊,对吧?哎,有默认值的行三我是不是就可以不传入了。对不对,哎,所以这里边。我们来看一下啊。在这。来,你看,如果函数有定义行参,那么调出传入这个对应的时参,这我们说过了对吧?那么如果函数同时具备什么呀,具备行参的默认值,并传入了实参,那么是不是以传进来时参值为主,是不是相当于变量赋值啊,哎,用时参的值赋值给了什么?赋值给了行参对吧?那如果传入了时参必须什么,必须跟行差的位置一一对应,这话说的什么意思呢?你比如说你看啊,在这里边。
14:05
比如说我们这游戏啊,创建成功了,现在已经可以干嘛,可以进行打怪了,对不对,那我是不是得出去打怪去,那比如说打着打着诶,我突然打了一个什么,打了一个这个大宝剑啊,也就是小弓箭或成大宝剑了,对吧,那么这个时候比如说。我得到大宝剑,我是不给的赋值啊,那我给个比如说我在这里面能直接写吗?我写个大宝剑,大宝剑你看比如说我得到大宝剑,我在这里面或者大保剑。好了,那这个时候你再来看,我再来刷新。这是什么头顶大保健了,看到了吗?哎,是不是就扎死了,哎,所以说我们在传入的时候说必须要干嘛,必须要跟它的这个位置一一对应啊,那它是第几个位置,你看好了,在这里边。是不是过去一个头,过去一件衣服,然后是不是才拿的武器啊,对吧,也就是说他是第三个位置,那也就是说在这里面我是不是要给他站位,比如说这样的。我这么再问行吗?这么再问行吗?来看一下。我为了装上一件大保剑,我付出了多大的代价?是不是头顶的这个装备给给取消了,身披的装备也给取消了,只剩什么?只剩手拿大宝剑了吧?
15:10
对不对,哎,那也就是说这样是不是肯定不行啊。哎,所以这里面我要这样写的话怎么办?那我是不是得写了我的头顶这个天尊。我还得再写一遍吧,天尊头对吧?天。尊头还有什么,还有这个一麻袋是不是这样的,哎,这个时候是不是才能才能给它赋值啊,对不对,所以我们一般在去做这种参数的时候干嘛呢?我们会把既有可能出现的这个行参啊往前放,但是不能放,不能超过什么,不能超过这个。没有默认值的星材对吧,不能超过他,因为他是必须负责的,对不对,剩下的比如说这个桃木剑,这个武器是最容易出的,对不对,那好,那我就把什么把它尽有可能出现的往前放,那这个时候你看我是不是直接这么给就可以了,直接什么。用户名男道士,然后淘宝剑,你看这个时候再来刷新啊,你看是不是头顶天尊头,然后身披麻袋手拿拉宝剑是不是一样的。
16:07
对不对,哎,所以在里面大家要记住啊。看一下笔记,这里边咱们怎么做的,你看啊,如果行三中具有多个形态有默认值,那么将具有可能传入了13的形三放在放什么,放入前面啊,放到前面,然后再有呢?如果函数同时具有默认值的行三和没有默认值行三,那么大家记住没有默认值的行三一定要放到有默认值的行单前对不对,也就是说在这里边这时候没有默认值的新餐的,哎,默认没有默认值的新餐一定要放到有默认值的星餐前对不对?哎,这样的话方便我们去干嘛,方便我们去输入去传餐对吧?然后再往后。传入的参数一定要跟什么,传入的这参数一定要跟行三去对应啊,免得什么,免得出现逻辑问题啊,这就是咱们参数需要什么我们去注意的这些点,那来咱们再来回顾一下啊,如果函数有定义行参,那么调用函数的时候必须传入什么对应的十参对不对啊?如果函数同时具备了行参的默认值,并且传入13,是不是以传进来13为主?哎,那么如果传入13必须跟行三的位置要一一对应才可以,对吧?那么再往下来,如果行三中具有多个行三有默认值,将最有可能传入13的行三放入什么?放入前面,然后最后呢?如果函数同时具有默认值的行三和没有默认值的这个星三,那么有默认没有默认值的行参一定要放到什么?有默认值的行参前对不对?哎,然后呢,最后一个产生的参数一定要和行参一一对应啊,免得出现逻辑问题,一定要记住啊,这一部分内容很重要,所以大家下来以后一定要把这块多多练习才可以啊,好了,这就是咱们函数的参数啊,函数参数一共分为两部分对吧,当我调用的时候。
17:43
传入什么传的是十参啊,当我定义的时候,传什么传的是行参啊,那么行参可以什么,可以有默认值,也可以变成没有默认值对吧?那么没有默认值的一定要放到有默认值的形态前啊,那OK,这就是咱们的函数的参数,那这节课我们到这里。
我来说两句