
模式匹配一直是 java 中备受期待的功能,为该语言带来了更多的功能和灵活性。 java 21 引入了 switch 语句的模式匹配,这简化了代码并减少了样板文件。让我们来探讨一下这个新功能的工作原理以及它的好处。
什么是 switch 的模式匹配?
switch 的模式匹配允许您将值与模式进行匹配,使代码更具表现力和可读性。您现在可以编写更简洁且可维护的代码,而不是使用多个 if-else 语句或复杂的 switch case。
交换机模式匹配的好处
可读性:使代码更容易阅读和理解。简洁:减少样板代码量。类型安全:在编译时提供更好的类型检查。
如何使用 switch 的模式匹配
这里有一个简单的例子来说明 switch 的模式匹配是如何工作的:
static string formatterpatternswitch(object obj) { return switch (obj) { case integer i -> string.format("int %d", i); case long l -> string.format("long %d", l); case double d -> string.format("double %f", d); case string s -> string.format("string %s", s); default -> obj.tostring(); };}
在此示例中,formatterpatternswitch 接受一个 object 并根据其类型返回一个格式化字符串。以下是正在发生的事情的详细信息:
switch 表达式:switch 表达式采用 obj 并将其与不同的模式进行匹配。案例模式:每种情况指定一个要匹配的模式:integer i:如果 obj 是 integer 的实例则匹配,并将值绑定到 i。long l:如果 obj 是 long 的实例,则匹配并将值绑定到 l。 double d:如果 obj 是 double 的实例,则匹配并将值绑定到 d。 string s:如果 obj 是 string 的实例则匹配,并将值绑定到 s。默认情况:默认情况处理任何与指定模式不匹配的值,使用 obj.tostring() 将它们转换为字符串。
让我给出详细的示例案例:处理不同的形状
立即学习“Java免费学习笔记(深入)”;
scala中文手册 scala入门与进阶
Scala也是一种函数式语言,其函数也能当成值来使用。Scala提供了轻量级的语法用以定义匿名函数,支持高阶函数,允许嵌套多层函数,并支持柯里化 。Scala的Case Class及其内置的模式匹配相当于函数式编程语言中常用的代数类型(Algebraic Type)。 Scala课堂是Twitter启动的一系列讲座,用来帮助有经验的工程师成为高效的Scala 程序员。Scala是一种相对较新的语言,但借鉴了许多熟悉的概念。因此,课程中的讲座假设听众知道这些概念,并展示了如何在Scala中使用它们。我们发现
0 查看详情
考虑一个场景,您需要处理不同的形状并计算它们的面积。以下是 switch 的模式匹配如何简化代码:
abstract sealed class Shape permits Circle, Square, Rectangle {}final class Circle extends Shape { double radius; Circle(double radius) { this.radius = radius; }}final class Square extends Shape { double side; Square(double side) { this.side = side; }}final class Rectangle extends Shape { double length, width; Rectangle(double length, double width) { this.length = length; this.width = width; }}static double calculateArea(Shape shape) { return switch (shape) { case Circle c -> Math.PI * c.radius * c.radius; case Square s -> s.side * s.side; case Rectangle r -> r.length * r.width; };}
在此示例中:
密封类:shape是密封类,只有circle、square和rectangle可以扩展它。switch 表达式: calculatearea 方法使用 switch 表达式来确定 shape 的类型并计算其面积。案例模式:每种案例都匹配特定的形状类型并执行相应的面积计算:circle c:如果shape是circle,则匹配并将其绑定到c,使用c.radius计算面积square s:如果shape是square,则匹配并将其绑定到s,使用s.side计算面积矩形 r:如果shape是矩形,则匹配并将其绑定到r,使用r.length和r.width计算面积。
结论
java 21 中 switch 的模式匹配是一个强大的功能,可以增强代码的可读性、简洁性和类型安全性。通过允许您直接在 switch 语句中将值与模式进行匹配,它简化了许多常见的编码任务。 java 开发人员绝对应该探索并采用此功能来编写更干净、更易于维护的代码。
请随意修改或扩展此部分以满足您的需求!
以上就是Java 21 中 Switch 的模式匹配的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/828925.html
微信扫一扫
支付宝扫一扫