00:00
接下来呢,我们来看这个心得性称谓呢,叫Switch表达式,这呢仍然是语法层面的一个变化,语法格式呢有一些调整啊,那提到这个Switch表达式呢,大家可能并不陌生,诶,我指的这个不陌生,不是说大家清楚,说Switch呢,以前我们是在流程控制当中讲的,对吧?诶,这是其中一个层面的,不陌生,第二个层面呢,就是这个结构我们就要表达式了,在前边呢,JDK12和13当中啊,其实已经讲过这个新特性了。12当中呢,我们引入了这个叫箭头操作符的一个结构,就或者说我们引入了就是叫Switch表达式,在JDK13当中啊,咱们只不过呢,又引入了一个新的关键字呢,叫做业的,相当于呢,在我们Switch当中,通过这个业务的关键字呢,来返回这个数据。那咱们这个十字当中啊,仅仅是做了一个事儿,就是把这个12和13当中称为叫pree的这个预览特性啊,咱们给它改成一个叫正式的特性啊,其实也就是说呢,我们这个Switch已经被确定下来了,那么在我们后续的这个版本当中,这个Switch就会一直的被使用下,哎,被使用OK,那么这个特性呢,规定说Switch啊,可以当做这个语句来进行处理,流程控制语句嘛,也可以呢,哎,来当做这个表达式进行处理。
01:11
这个Switch呢,其实我们在这个历史上对它还确实进行过一些改变,对吧,比如说我们像这个一开始在这个表达式,在这个这个语法,这个当做语句的结构使用的时候呢,它后边的小括号当中,我们在JP7当中还引入了可以来表示这个叫词缀类型,对吧?那现在的话呢,它还不能放其他的一些特殊类型,比如说像float呀,Double啊。波尔类型啊等等还不能往里放,那未来呢,也有可能在这块呢也做一些改变,那现在呢,我们想谈的就是提到一个结构叫做表达式,那如果说呢,大家没有看过JDK12和13的这个新特性的话呢,也没有关系,下边呢,我们来给大家再演示一下,在12和13当中,我们是怎么讲的好这块呢,我们直接就上代码。我这呢已经写了一个例子,这个例子呢,是咱们之前的这个写法,为了把这个时间呢,咱们节省出来啊,大家呢应该都比较熟,我这呢写了一个枚举类叫week,中间呢有这个星期一一直到星期日这样的几个枚举类的对象。
02:08
这个大家并不陌生,上面呢,我们这个测试呢,是在我们这个准确的说应该是在JDK12之前的这个写法。之前的这个用法。那我这呢,是从make枚举类中调用了它的一个内部的一个对象叫Friday,然后Switch的时候把它放在这儿,因为我们Switch中是可以放这个枚举类的对象的,没问题,然后case呢,根据星期一,星期二,星期三输入的是一,然后等等这样的一些情况,不用多说,这是最后一个叫default,然后我们来看一下在GDK12当中,我们把这个结构呢,可以做一个怎样的变化。这这个。咱呢就不写这个14了,本身呢,也不是在它这块加的对吧。上面呢我们叫T1,咱这叫一个二行,那怎么写呢?这呢我就重新来写一遍啊,首先呢,我们上面有这样的一个声明,这个呢咱们同样的拿过来后,接下来呢,我们写这个叫Switch,里边呢把这个day呢放进去,下边呢是一个大块的一个结构,然后在这呢,我们来写这个具体的这个case的对吧?Case呢这块说如果你是星期一,星期二,星期三,我们把这个CTRLC一下。
03:18
嗯,这个逗号。我就粘了啊。行是这三个值的时候,下边呢,我们用了这个叫箭头操作符。加到操作后边呢,我们有一个输出语句对吧,直接呢,我们就这样来写CTRLC。这是针对他来讲的,然后下边呢,再去K。星期四。他自己呢,是一一份儿。间动操作这个呢,我们输出一个结果呢是二。这样就行,然后接着呢,K。五六。
04:04
电脑操作书。这个是三。那直接我们再复制一份周日的话。这个我们来一个四。然后边呢,是还有个T,是有一个这个我们这个。CTRLC行,这呢就是咱们这个在12当中这个新特性,这呢提到叫呢Switch表达式,把这几个合并在一起,你看整个这个结构呢,比原来呢,是不是要短很多呀,我们的逗号呢,就隔开这几种情况,然后它的这个执行语句呢,就一个建造操作符,后边呢就是我们这个输入的结果。没问题,好,这个我们也可以跑一下,嗯,这个我们,呃,对直接在这输出了啊。点那个debug,诶没关系,这呢,我们也没有这个。呃,没有这个断点啊,行这个数呢,就是三行,这呢就是我们这个12的一个写法啊,嗯,实际上哈,大家这块你发现,你看我给大家讲一个小技巧,这呢是不是咱们以前的写法啊。
05:09
哎,我把这个结构呢,你看我CTRLC我再拿过来啊,我放在这儿。嗯,这么着吧。我放这放这以后,这呢是咱们这个以前的写法,大家把光标呢,放到这个Switch后边,我out enter一下,大家你会发现呢,是不是要求,呃,这个提示我们说可以呢,去替换成Switch表达式的这个结构啊,我点一下。点完以后呢,大家发现你看我这个生成的这个结构是不是跟咱们这个我刚才写这个结构是一样子的呀,也就是说啊,大家以后写的时候呢,就没有必要自己去写了,你要是以前是这样写的话呢,直接我们通过这个快捷键的方式呢,直接就可以生成,非常的方便,对吧?OK,那顺带着这块呢,我们再说它的另外一个这个点啊,就是这个Switch呢,我们称为叫一个表达式的,表达式的话呢,我们就可以给它赋成一个,赋给一个值,我这定一个int型的叫number,比如叫number。
06:00
Your number吧?然后这块的话呢,我们Monday Tuesday和Wednesday这块,咱们就别写这个输出语句了,我就写个一。这叫二。三。四对吧,这样呢,就相当于我们来接受这个值呗,这个值的话呢,最后有一个分号结束,此时呢,我们再去打印这个。这呢也是咱们12中的这个新特性,直接呢可以来接收这个,这个相当于你是表达式了嘛,表达式的话呢,就可以有这个值,相当于我们使用一个变量接收咱们Switch的。表达式的这个值。是这样的一个情况。这个执行一下。行,这个结果呢是一,嗯,这个结果是一看一下。嗯,这个day,这个day Friday Friday。
07:02
啊,这个结果我这都给写成一了,怪不得啊,这是二这是三是这样的对吧,好重新跑一下。行没有问题,这呢都是咱们这个12当中这个心特性啊,这就过了,就是引入了我们这个叫Switch表达式,那么在这个JDK13当中啊,对这个思维表达式呢,功能又进行了一个扩展。什么叫扩展啊,说叫引入了咱们叫业务的关键字,那这个关键字呢,说用于返回指定的这个数据,同时呢,就要结束咱们Switch结构有点类似于咱们在这个方法中用这个return,在这个循环当中用这个break一样。是这意思,OK,嗯,Switch行,其实呢,更多的应该说像是咱们用这个return哈,因为呢,业务的后边呢,是可以返回一个值的,是这意思来写这个测试。
08:05
咱们写一个三。没问题,行,那这块我们来这个重新写一个例子啊,我这呢定一个string类型的一个变量X,不妨呢,这个变量我们这个值呢叫三好,下面呢,我写这个叫Switch,我把这个X呢放进去K的情况呢,K一下,比如说它是一个一。这呢,用这个箭头操作符,这个它的返回值呢,是这个一。这呢,相当于我们前面用一个变量来接收了啊,我还是叫一个。这是第一种情况,然后下边K2。这是个2K3。这是一个三好,这个后边呢,我还可以写个叫default结构对吧,这个default的话呢,我这块写的稍微复杂点,我写个大括号的情况啊,言外这点就里边呢,咱们还可一体的复杂。
09:05
Default这块我加上几个点点点行,然后在这块呢,它去返回一个值,这时候返回这个值啊,我们说就可以用这个叫Y了。业务的这块呢,我们写一个比如说四是吧。OK,没问题,然后最后呢,把这个封一下。这呢,就是咱们这个在这个结构当中,咱们引入的这个情况,嗯,我应该用双引号啊。可以了,那最后呢,我们来一个输出。哎,看大家清楚吧,就是这呢还是返回值,就是似乎呢,跟我们这个12呢,没什么特别的之处,但是在这个13当中,如果你这个结构中呢,这个结构不只是说直接返回这个值了,而是里边有一些比较复杂的语句,这个时候的话呢,我们想表示返回呢,用的叫I。嗯,返回这个结构,返回这个四给我们这个这个值好跑一下。没问题是吧,这个就是这个三行,这就我们提到这个结构,那对应它的话呢,其实还可以有一种写法。
10:02
这呢,我写一个这个四。这个变化呢,不是特别大啊这样子的,我还定义这个是三好回过来,然后接下来的话呢,我们去定义这个number,等于这呢还写这个Switch,还是这个X放进来以后这呢,我写这个case case的时候呢,我这是一,最后呢这块呢,我写的是个冒号,这个冒号后边呢,我写这个叫业务的。嗯,这个业务端呢,我们直接返回一个这个叫,哎,这个数值一,哎这样也是可以的啊。三。三这样是吧。行,那如果说最后呢,你要是这个咱们还确实得给一个default啊,没有default话呢,相当于没有返回值了,这咱们来一个业务的。来一个四,哎这样就行也是可以的,就相当于是呢大家,嗯,可以呢,用这个建造操作符,这个时候呢,这就不用写业务的了,如果你要用冒号呢,哎,有点还像咱们以前的这个Switch这个语句结构,这里边呢,你用一个I表示这个return,相当于类似我们这个return一样,Return呢是结束的方法,我们这呢,接出的是这个s Switch结构,同时呢,返回我们对应的这个值。
11:09
OK,这就行,最后呢,再去打一下这个number,这就比较简单了是吧?行这呢就是咱们演示的这个12和这个13当中这个新的特性。那么大家呢,在之后的开发当中,如果你安装的是属于14或者是以后我们之后的这个版本的话呢,大家就大家呢,就都可以去使用了。因为呢,这个特性呢,已经被正式的确定下来啊,没有问题。行,这呢,就是我们说的这叫思维式表达式的这个新特性。
我来说两句