Scala中最终课和密封课程有什么区别?
发布时间:2020-12-16 09:30:42 所属栏目:安全 来源:网络整理
导读:Scala有两种类型的修饰符:final和sealed 他们有什么区别?什么时候应该使用一个在另一个? 解决方法 最后一班不能延长,期间。 密封特征只能在与其声明的同一源文件中扩展。这对于创建ADT(代数数据类型)很有用。 ADT由其派生类型的总和定义。 例如。: 一个
Scala有两种类型的修饰符:final和sealed
他们有什么区别?什么时候应该使用一个在另一个? 解决方法
最后一班不能延长,期间。
密封特征只能在与其声明的同一源文件中扩展。这对于创建ADT(代数数据类型)很有用。 ADT由其派生类型的总和定义。 例如。: 一个选项[A]由Some [A] None定义。 sealed trait Option[+A] final case class Some[+A] extends Option[A] object None extends Option[Nothing] 因为选项[A]是密封的,它不能被其他开发人员扩展 – 这样做会改变它的意义。 一些[A]是最终的,因为它不能被延长。 另外,如果特征被密封,编译器可能会警告您,如果您的模式匹配不够详尽,因为它知道Option限制为Some和None。 opt match { case Some(a) => "hello" }
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |