scala - 为什么我需要 Scala 枚举
问题描述
通过使用 Scala 的 Enum 而不是不使用它,我将获得什么确切的好处。
object Colours extends Enumeration {
val Red, Blue, Green = Value
}
为什么我不能将其用作:
object Colours{
val Red = "Red"
val Blue = "Blue"
val Green = "Green"
}
我同意它有点冗长,但是每当我必须使用它时,我都不必执行 toString。有没有更好的理由使用枚举?我的问题是:1)我们应该仅仅因为它是一种好习惯就使用枚举吗?2)是否有任何性能考虑?
解决方案
真正的问题是“为什么这是一个好习惯?”。使用类型系统时,您可以减少出现错误代码的可能性。您可以防止以下错误:
showColor("green") // wrong casing color match { case "Green" => // case "Pink" => // invalid color } // match didn't include all possibilities (exhaustiveness)
当然,你总是可以使用你定义的 val 来代替文字字符串,但是没有类型就没有任何强制措施。
性能方面 - 除非它处于某个紧密的循环中,否则可能不会有很大的不同
推荐阅读
- node.js - 如何使用 discord.js 检查有多少人有角色?
- vue.js - vue-router 嵌套路由和多个路由器视图没有内容
- javascript - 以编程方式确定 S3 存储桶中是否存在文件前缀
- typo3 - TYPO3 4.5:升级到新版本 - 一次还是增量?
- integration-testing - Quarkus 原生镜像测试和注入
- type-conversion - DolphinDB 中的数据类型转换
- docker-compose - 以编程方式更新 traefik IP 白名单
- julia - 使用 Julia 修改 HDF5 数据集
- python - 通过 PHP 运行 Python Selenium 脚本
- php - 如何禁用对流式传输 mp4 的 php 文件的直接访问