00:00
好,那接下来呢,咱们就应该去写这个数据接口对吧,那数据接口呢,呃,它分为这几块啊。对吧,呃,第一个controller。控制层对吧,Service。服务厂还有一个。叫D倒层对吧,就是接入数据的啊,还有一个呢,就是数据。持久化。数据持久化层对吧?啊,就是我们的MYSO啊,Phoenix啊,还有这个克林号,它都属于他号,他们之间的调用关系都是什么。诶,那比如说这边有个客户端啊,再加一个吧。再加一个。在这啊加一个客户端。对吧,那客户端呢,就是比如说我们在网页对吧,输入一个地址,它会发送请求给这个controller,诶controller呢,它会拦截到。
01:01
拦截道呢,会执行对应的方法对吧?呃,执行的方法之后呢,在这里边调用service啊service呢调用do do里边是执行的circle嘛,对吧,然后呢,它会。找我们的数据库,相当于啊,然后呢,把数据拿到,拿到之后呢,逐级返回嘛,逐返回最后呢,Controltrl了封装能切算返回给客户端,对吧,他这样的一套调用流程,那我们要写的呢,其实就是它就这一套对吧,那在这里边呢,我们要写circle,那我们想一下,为了完成这个东西。我们要找出来总的GMV对吧,那我们的搜这个好不好写啊。好,不写,大家告诉我,Show tables,我们要找。哪张表GMV对吧。呃,总的GMV啊,那我们可以有两张表都可以挑,第一个呢,是这个省份,我从这张表里边取可以。
02:00
从这张表里边取能不能行啊?省份,哎,省份不行是吧,省份是不是只有订单次数,哎,不对,省份有订单次数和订单总金额吧,我看一下select。From。啊,你看这里面有什么叫all the amount对吧?啊或者说呢,我从这个表里边能不能行啊。我从这张表里边取我们要的数据,可不可以拉一下?两张都行吗?大家想他俩里边是都有订单金额呀,那其实从那个省份里边获得好一点,因为他呢,他的一个。省省份就一个维度吧,对吧,力度指标呢,相当于更粗一点,这个更细,这个里面数据量更大一点,对吧,这个更小一点啊从这取,从这取呢,那我们来看一下应该怎么取,就是这样。
03:04
他。对吧,好,那咱们把circle先写好啊,Some。括号对吧,叫all the amount,把这个拿过来总金额对吧?From这张表,然后呢,我们是不是要当天的数据大家下。咱是不是要当天的数据啊,对吧,你未来呢,一天一天往里写秒对吧,那我们要当天的数据,那就是where。好,我们要今天的对吧,那要今天呢,直接突。长DD就是我们之前写那个分区字段这样写的吧,对于STT对吧,好等于什么呢?我要比如说我这里面有这个2022年4月27号对吧,202204。二七注意啊,你不要加单引号,它这个东西返回值是一个int类型的啊,你这样吧,我给你加个单引号,你看一下啊。
04:00
我们刚才想的大概率呢,加一个单引号对吧?啊走并行,它会告诉我们错误对吧,看啊他说什么。参数错了对吧?那什么呢?U的32跟string类型,哎,这个不行对吧?Of function equals在这里边做比较的时候不行对吧?哎,函数呢,是这个等于啊,那不行,注意这个to YY YY mm DD呢,这个东西返回是一个in的类型的对吧?好走一下,哎,这是我们的一个总金额,那我们28号有没有数据啊。呃,28号没有数据对吧,那我们只有27号的数据啊,那所以呢,我们四先写这样。因为至少它有数据嘛,对吧,这个在倒层里边,我们要写的这个circle啊,你要把这个东西掌握好,最后呢,就是我们要把这个值。是不是替换掉杰森里边这个位置对不对。能跟上思路吗?啊,或者说呢,这个我拎出来。
05:01
第三步。So口编写对吧?啊,第三步呢,我们写这个circle口啊,那第四步呢,最后写这个接口对吧?最后呢,我们要把这个东西诶封装到TS里边做展示,最后呢,它就会显示在我们的大屏上面了,对吧?它这样的一个过程啊好,那这是我们三个危险,那接下来呢,我们要写的就是它啊controller service点我们那个接口对吧,那这个呢,其实就是一个we部项目吧,对吧,大家在Spark streaming那个项目当中呢,也写过吧,对吧,也写过的啊好,那我们接下来就完成这个内容。那怎么做呢?在这边我们再创建一个模块啊,你一个module。这个目的呢,注意选它。选他啊。看见没选它好呃,默认的脚手架地址呢,是这个spring对吧,官方的地址这个呢是外网,它呢可能会比较慢啊,那咱们呢,用这个啊把它复制过来改一改,诶这个不让复制嘛啊那我们就敲一下啊HTP。
06:08
呃,咱们用阿里云的脚手架啊,阿里云的脚手架,因为这样的话会更快一点,对吧?啊,大家特别没有梯子的时候,你要那用它也行啊,你就点TOD也行,但是没有梯子呢,它会比较慢一点,有可能会下载失败,你要重试比较麻烦,那我们就用阿里云的脚手架啊,那怎么写呢?就是还是一样的啊,按照这个来写start啊点阿里云点com。OK吧,注意啊,脚手架地址,那这样我发给大家吧。我发这啊。啊,这个应该是对的,我记得应该没错,虽然因为我电脑新换了,我这没有保存对吧,我们来试一下啊,下一步。好,应该没有问题的。com点爱硅谷对吧。这个呢选择艾德谷,然后呢,这个项目名称我们叫G莫杠。Publisher。Publisher对吧,这个是咱们的什么呢?呃,咱们的项目名称啊,嗯,JA publisher,好没有问题,这八其他的东西呢,都没有问题,好直接下一步。
07:05
下一步呢,其实就选择这个依赖啊,选择这个依赖,那其实。这个在里边选择组件对吧?啊,其实就是选择依赖,那我能不能不选。我能不能不选?对吧,就是正常来说,我们要开发一个。外部项目,那起码要选这个spring web。对吧,呃,然后呢,我们要对接这个对接这个什么对接house,那我们要有这个my be,对吧,这个框架帮助我们去构建整个内容,对吧,我们不想自己去写构建连接,构建这些东西乱七八糟的啊,那我们也可以选上,当然这些东西呢,你也可以不选。应该不选,因为这这一块选的东西他在干什么呀。他是不是就是帮我们添加依赖呀?它其实就是帮我们添加依赖,大家想是不是对吧,它就是添加依赖,没有什么其他的作用,所以呢,你可以一个都不选,可以一个都不选对吧,如果是你非常清楚要什么,你可以选对吧,你也可以不选啊,那我们版本调一下用这个。
08:14
最高板吧,啊下一步。好叫jama publisher,嗯,1027g publish没有问题,Finish对吧?好,那这个就很快啊,这个用阿里云的脚手架地址就很快啊。因为他会下载一些组件嘛,模板啊之类的东西对吧。那接下来我们要去看一看这个东西应该怎么去处理啊。我感觉今天可视化应该讲完了,但是至少我们能讲一个啊。啊,那明天花一点时间把这个整个的搞定也行啊,花一点点时间嘛。因为明天讲优化,优化呢,时间本身也是比较充裕的啊好,那这个就下完了,如果说你用的是官方的对吧,spring.IO那个地址下你可能还没下完啊。
09:00
好,那这个就搞定,搞定好以后呢,我们到这边来看一下。现在呢,啥也不是啥也没有对吧?啊,啥也没有啊,那首先第一步呢,我们把这个改一下,把这边端口号。对吧,默认8080,那我们改成8070。因为8080呢,未来你看啊,这些东西呢,我们虽然现在测试啊,都是在这个Windows上,那但是之前那个弗林CDC我也打包扔到过集群对吧,因为咱们集群呢,说实话虚拟机你也运行不了这么多任务,就有点难,对吧,所以后面呢就没有打包去运行了,但是你在生产环境当中,像这些东西呢,其实你都应该打包到集群上就行,对吧,而集群上如果说你用8080,那就有问题了,因为咱们的组K已经把8080端口占用了,所以八零八零用不了,那咱们呢,就8070吧,改一个对吧?啊随便你只要你申请一下,在公司当中没用过这个端口号就行。对吧,啊好,那首先要把这个改一下啊,那么接下来呢,还有东西我们这个文件啊。
10:03
还没什么东西呢,对吧,啊没什么东西,那这个不行,为什么test这个其实我们对于我们来说呢,没有什么大用,对吧,那怎么办呢,我们去拿一下我们的依赖啊在。项目分层这个呢,就是刚才我们的东西好,那我把这个依赖拿过来啊,整个的拿过来做一个替换吧。啊,拿过来。把这个呢替换掉。啊,当然你整个的你把后面添加进来也行啊,当然你也可以把这个test啊给给它删掉。对吧,把这个test给它删掉,这个也无所谓啊,不重要对吧,好,那我们看一下我们拿了有哪些依赖啊,首先spring start啊,一个GDPC,对吧,因为我们未来要连这个。连这个house对吧,好,那web模块,因为我们要写controller service Di啊呃,My be帮助我们构建这个查询的啊,他呢,替代的是谁啊,是这个。
11:01
Map对吧?啊,那do你要自己创建连接,然后呢,去。赋值。对吧?呃,然后呢,执行circle返回的结果,自己对result set进进行解析,而这一套呢,咱们可以用my be这个框架帮助我们完成,对吧?而且这块呢,大家已经写过了啊,都已经写过了,之前在Spark streaming都已经做过了啊,Book这个不多聊了啊,写招呢更方便啊,好,这个是test test我们就不用看了啊,那对吧,这个test给它删掉吧,没有用啊。删掉啊,那在这搞得好像依赖搞了很多一样,对吧?啊,既然这个太子删掉了,你注意这边呢,你来把这个删掉啊。要不然它里边就就就报错了,你看对吧,所以呢,把它也删掉。这个没有用太没有用啊,啊直接删掉就好了,你删啊用到太就删啊呃,康普拉三,康普拉三的拼接字符串的啊,未来呢,我们可能会用到它拼接字符串啊,还有一个不用聊那克雷耗一个GDBC的一个连接,对吧,这个呢肯定要导进来的。
12:06
对吧,因为你要去连这个click house嘛,对吧,好这个搞定,呃搞定好以后呢,里边创建这个目录结构啊,到时候我们再说吧,啊候我们再说那端口号得改一下,还有一个关键点在于这个要拿啊。端口号我刚才改了吧,8070,还有一个把这个配置信息呢,我们先打过来啊。呃,拿到我们的这个里边啊,这谁呢看。咱们克林号的一个地址对吧,咱们这个数据库呢,咱们下划线211027对吧?数据库呢,改一下啊,你是叫什么,你就写成什么就好了,这个主机名也一样对吧?就是我们的驱动名称,然后呢,把这个UR啊配置信息呢,我们先搞定啊,要不然呢,你等会运行它会报错啊,它会报错对吧?好,那这块呢,咱们就搞定了啊,下面分层对吧?分层呢,我们先把这个分层写一下啊,一般呢,我们在这个目录底下继续写我们的包啊第一个controller。
13:04
CTR了不,第二个呢,Service,第三个map对吧,把这个包建好。Service啊,然后还有一个map对吧,本来是DA,但是呢,咱们用MY来代替了,所以呢叫map就好了,对吧,这个就搞定了,那这个是我们把这个。接口数据接口模块呢,把它构建好了,对吧,没有做什么其他事情啊,那比如说呢,在这边咱们写一个这个类啊,写一个类叫sugar。Sugar啊,Control。啊,叫sugar controller可以吧?啊那呃,这个东西啊,它叫controller是因为它名字叫controller,就是controller吗?我们先不着急写我们的需求啊,对吧,我们先写一个测试啊,先写一个简单的测试,是因为它的名字叫sugar。
14:04
所以它,呃,它的名字叫controller,所以它就是controller吗?它就作为controller组件吗?是这样吗?这个有印象吗?以controltrler结尾就就行了是吗?新走你是这样认为的,就是我们写一个类,然后呢,以controlrl结尾,它就是controlr了是吗?不是啊,就跟你的名字没关系啊,跟你的名字没关系,你名字叫AA,它也可以是一个controller,对吧,你名字叫controller,它也可以不是一个controller,这个要注意一下在哪呢?在这个位置加一个controller。啊,咱们要加一个。C了。对吧,啊,咱们要加CTRL了,好,那这个呢,才能被识别成我们的一个。组件。啊,才能被识别成我们的一个组件对吧,那接下来呢,我们就要写这个方法啊,写个方法,比如说public,嗯,然后返回成呢思类类型对吧,思类型好,那接下来呢,我们叫test。
15:08
一括号。啊。好,那么比如说这里面呢,我们先返回一个success。对吧,我们先返回一个success,好,那未来呢,我们启动以后,它的端口号不是8070嘛,对吧,我在这边我去访问8070好访问这个他就能调用这个方法吗。是吧,大家想还缺一点东西。他是不是还缺一些东西啊,大家想就是你想啊,未来呢,你在这个地方,你去调用什么local host8070对吧,诶然后给个地址,然后呢,这就能。访问这个方法吗?就能调用这个方法吗?你想一想可不可能,不可能吧,因为未来你这是个类啊,你这个类里边有没有可能,你看啊,有这个TEST2方法对吧,比如说还有这个什么TEST3方法。
16:08
是不是还有探测三方法对吧,你想想就不可能。是不是你你想一下就不可能,为什么,那我如果这样写了。我在外面访问,那你告诉我他调用谁呢?调用T1T2T3呢,不行对吧,就就分不清了,我也不知道调用哪个方法了,所以呢,该有一个东西跟什么。得有一个东西,呃,比如说你看这是地址对吧?啊,这个不是这个直接的好,你要。这个是地址域名对吧,啊域名好,那么接下来呢,这。是不是有个东西对吧,有一点东西,诶还有一个后缀就是这种感觉啊,哎,就是拿着它干什么,跟我们这个方法有一个什么东西应该绑定一下,这样我们在调用一个唯一的路径的时候,诶,这个路径是唯一的,对吧,它会指向我们唯一的一个方法。
17:06
能明白吗?对吧,所以缺谁呀,缺一个这个加一个注解叫request map,诶就请求的映射对吧,比如说我们请求映射呢,叫test。一对吧,好加一个这两个呢,我们只是说明了,我们就先不用啊,先不用他俩对吧,好,那就叫它的一,当然这个方法名跟它可以不一样。啊,可以不一样对吧,这个无所谓啊好,那这样的话呢,就映射成功了,映射上。对吧,In射好。哎,那我们未来访问这个TEST1对吧,它就返回success,好,那我们来看一下能不能做到这个事情对吧?好,那我们看这个方法有没有被调用呢?很简单,我们就直接打印一个A对吧,看能不能打印AA,我们就知道这个方法有没有被执行对吧?来运行啊。
18:01
好,这边呢,已经启动成功对吧,已经启动成功,启动成功以后呢,我们来访问一下啊,到这边来,呃,咱们访问的是local。Host对吧,然后呢,问号叫8070斜杠,哎,TEST1对吧,走你诶报错了,报的什么错呢,叫404。404什么错误?404这个应该大家比较熟悉对吧。大家正在受着这个煎熬,受着这个痛苦,是不是?404。404。什么错误?是不是大家都受着这个煎熬呀?对吧,叫找不到对象,404这个错误你得记住啊,就是说你就说你呢,说你现在对吧,说你找不到对象。
19:02
对吧,啊说你找不到对象好,那什么方法没有调用吗?来看啊,这个A也打印了呀。对吧。这个AA也打印了呀,比如说我在刷新啊,来回车刷新一下对吧,那又打印了一次AA呀,他找不到对象平什么,他们方法都调用了吗。对吧,我刷新一次啊,来刷新一次。他打印一次A,看见没对吧,他又打印了A啊,我刷新一次,它打印一次,他为什么找不到对象呢?找不到什么对象。找不到什么对象,这个要注意啊,对于我们的这个外部项目而言。默认这玩意儿返回的是一个什么呢?返回的是一个页面啊,它默认返回一个页面,它找不到这个页面,你懂吧。啊,那找不到这个页面,你就让他返回一个success嘛,他就拿着success找页面,找不到对吧?好,那比如说我就给你一个页面,你不找不到吗?对吧,那在我们的。
20:07
呃,我看一下啊,在这里边。我给它添加一个页面啊,比如说在这边创建一个目录啊,叫static。他为什么没有这个,这个脚手架有问题啊,他正常应该会给一个这个啊好,那我们在创建一个文件啊叫inex。HTML。啊,你写一个H码,写一个页面对吧,当然写一个简单的页面啊,不写那么嗯,咱们也不是上这个前单课对吧?啊,那IM啊,加上这个标签对吧。好搞几个标题吧啊,咱搞几个标题就得了呗,不搞什么其他的啊,假如说搞一个大标题H1对吧。一呢,写一个爱的硅谷啊,我也不写中文了,你要写中文,你还得处理这个。编码格式,它有可能你在这写的中文到页面上展示的就变成乱码了啊,就不搞中文对吧,中文呢,你还得调这个,那我们就不搞这些事儿了,好好H2 h2又是一个标题对吧,它比H1标题呢要小啊,从H1到H6这是定义标题的啊,大家知道这个就行啊,好,那比如说上海吧。
21:12
上海对吧,好,那我们再来一个H3。你看H1到H6看见没对吧,再来一个H3,嗯,H3的话,咱们再搞一个,哎,那上海2110227。可以吧,啊,咱们就搞个这玩意啊,那我们保存好,保存好以后呢,接下来卡C啊。把这个东西呢,我们在这儿返回对吧,叫index.html对吧,那现在呢,它这个东西能不能找到了,可以找到我们有一个这个对象对吧,有一个页面找他啊好,那我们重新运行。我们来看一下这次运行应该是什么效果。啊,因为HTML属于这种静态页面对吧,我们所以放在一个static静态页面底下啊呃,那么接下来呢,我们来运行啊刷新。
22:02
看。还是404吗。就不是404了,因为这个时候他找到对象了。他刚才找不到对象。对吧,现在呢,他就有这个对象了啊,其实他默认的呢,就要找一个这个页面对象,对吧,现你刚才根本就没有一个叫success的一个东西。所以它返回的是not found对吧,找不到对象,找不到什么对象,找不到页面对象啊,它是找不到页面对象,问题在这儿对吧?好这个呢,我们就搞清楚了,其实它默认的你看A被调用了。浏览器都找到对象了,你还找不到,你看看你对吧,Low不low啊,Low不low对吧。好,呃,关键有一个问题啊,那我们现在是为了写这个数据接口,大家想对不对。咱是为了写数据接口,数据接口呢,你不能给我返回一个页面呀,不行对吧,你接口你得给我返回一个切分,我就要这个字符串,对吧,所以这块呢,比如说我就想返回success。
23:07
对吧,我就想返回success,我就要这个字符站,我不要什么页面,没有页面给你,对吧,我是数据接口好,那怎么做呢,两种方式,第一种呢,是不是在这个位置加一个response body。对吧,这是单个方法的啊,假如说你当前整个类都是返回这个杰森,那你就这样写,诶在这边其实最早的有同学就写出来了,对吧?啊这个response body呢,就相当于诶我们直接用的什么叫rest control。我们用rest controller对吧,它呢,就等于什么,等于这玩意啊。等于这个controller啊,加上方法上的这个什么叫微方body啊,它两个注解的一个作用,对吧,那这个东西加。哎,你就不用去找对象了,直接把这个字符串返回就好了,把这个对象直接返回到页面,好,那我们再测试来运行。
24:10
启动了,启动完以后呢,我们刷新啊,诶那这边呢,打印的就是什么。Success啊,假如说你这边写的是一个杰森啊,那这不就返回的杰森吗?比如说这边呢,我们写的是一个杰森啊,啊,当然杰森要转移啊。对吧,这边要转移。转一。然后呃,我看一下里面放ID吧,比如说放一个ID啊,然后冒号对吧,然后呢,两个这个要转移,这个看着恶心啊,看着恶心啊ID然后呢,1001,比如说第二个对吧,再加一个逗号。咱们的双引号啊转一。第二个呢,Name啊,比如说在在这个冒号对吧,然后呢,双引号转义啊。你不转印它双引号的肯定不行嘛,对吧,比如说张三啊张三好,那这个这是第二个对吧,来我们把它返回一下啊。
25:05
我们刷新,哎,那你看就这样子的ID1001NAME张三。对吧啊,就是双引号的要转移,就是唯一的区别就在这儿啊,双引号转移这里边看着不爽,对吧?啊,你可以返回一个杰森,那这个东西是不是要传给我们的sugar去用的未来对吧,我们这直直接随便写的啊,你就了解一下啊好,这是返回一个普通字符站,我们就让它不返回页面,他默认我们现在知道了,他默认的要找一个页面对吧,他报那个404呢,他是找不到那个页面,所以导致这个问题啊。好,那接下来呢,我们再继续,因为我们看到有很多的东西,你比如说啊,在这边百度搜索的时候。对吧,百度搜索的时候呢,你看啊,咱们搜索的是这个sugar。你看啊,它呢,百度点com,哎,然后呢,访问的是SS表search嘛,对吧,Search然后有一个问号,问号呢有一个WD word对吧,Word等于sugar,哎,这玩意就在这儿,看见没把我们传进来的东西呢,作为参数。
26:11
传到后台了,因为你要搜什么东西,我得传到后台才可以呀。对吧,所以我们这个方法,你看你这边能传参数进来,那也就是说我这个方法是不是也可以带参数。是不是也可以带参数啊,对吧,所以第二个我们再来聊一下带参数的这种public string啊。加。二。好,那这边呢,我们要写参数了,首先把这个东西呢拿过来对吧,我们不能叫T1了,比如说我们就叫T2。对吧,我们叫太,这个呢,我们叫test,当然我们等会也可以测一下,就是这个名字我可以告诉你啊,就是你方法名跟这玩意可以不一样,对吧,这个呢,我们两个就一样可以吧,好,那这里边呢,我们要加参数,注意这个参数呢,就不是我们平常那么加的对吧?什么string ID啊,这样不行,对吧,要加一个,因为我们是要将。
27:08
这边这个东西给它映射到这对吧,所以呢,咱们要加一个at request permit对吧?哎,请求的参数,请求参数,请求参数呢,比如说我们要请求一个N对吧,好用一个本地的变量叫内进行接收。啊,那注意啊,这个东西。它这个N是你未来要写在这个位置的。是跟他映射的对吧,因为它叫什么叫request permit,它是请求参数对吧,叫N,这个呢,是本地的新参,就是你在方法里边要用的就叫name对吧?好那么接下来呢,我们也可以再加一个,呃,再加一个H对吧。Age,好,那这个呢,咱们用int类型age进行接收,那我举了两个例子对吧,一个呢an name,一个age,也就是说它这个名字啊,可以一样也可以不一样,两个都行。
28:06
对吧,啊,它两个都行,这个没关系对吧,好,那接下来呢,我们直接so,对吧,把这个name。加上这个H,把它呢做一个打印,打印完之后呢,我们还是返回这个success得了啊。对吧,我们返回success,我们也不不去写这玩意了,看看着挺恶心的对吧,因为嗯涉及到双引号,它要转译,所以呢,你就看着比较恶心啊,不舒服对吧,接下来我们就直接返回success得了啊返回success好,那接下来呢,我们来运行啊,点击运行。那这个怎么调用呢?首先我们的地址呢,是TEST2对吧,那到这里吧啊。访问。TEST2既来有参数对吧?参数怎么写呢?用问号隔开啊,注意都是英文的问号隔开,咱们呢叫N对吧,N等于比如说张三对吧,那我有多个参数怎么办呢?用N符合开。
29:07
And,对吧?Age等于18岁,所以照样返回success,那么此时呢?这边就打印了张三18。是不是相当于我们把。前面你说的一些参数传到后台了,那后台呢,你就可以根据我们的参数来决定你要做哪些事情。对吧,啊,当然你可以随便随意的去改啊,18,那你比如说你现在改20了对吧,刷新它还是四个赛子,那这边呢,打印的就20对吧,你前端怎么改,那后面呢跟着变对吧,因为它是将这个参数传过来的啊,它可以传参。OK吧,好,这是我们说的全参,但是呢,对于这个里边啊,它的参数呢,还有一种用法,就是这些个参数可以给默认值。Default,比如说我给个18岁。注意啊,在我们这个地方呢,它的参数可以给默认值,那如果说加了默认值的参数,你在前面就可以不传。
30:08
你可以不传对吧,但是没有默认值的参数必须要传。听懂好,那我们重新启动啊运行。来首先呢,我们先刷新啊,对吧,你有默认值,我刚才给了18,默认值给了18,但是呢,我要20对吧,刷新可以,哎,那这边呢,打印的是20对吧,因为你有默认值,但是我自己传了,那肯定用我的值对吧,接下来呢,我不传。把这个and edge干掉,刷新照样可以打印success,那看这边打印的就是什么默认值,但是name我没有给默认值,对吧,这个name呢,如果你把它也干掉,你把这个name也干掉,不好意思不行了。直接就找不到这个方法了,因为不行,没有这个方法。对吧,因为你内呢没有给默认值,我没有这个方法,不好意思不认。
31:02
啊,这是默认值的一个用法,对吧,就是说我们所有的参数呢,其实可以添加默认值啊,你可以添加一个默认值,有了默认值的参数呢,未来传的时候可以不传,没有默认值的一定要传听懂。OK吗,这块。没什么大问题吧?对吧,好,这是我们所聊的这个点啊,应该比较清楚啊。
我来说两句