为什么这是"良好的编码习惯"?例如,当我制作Rock Paper Scissors控制台游戏时,大多数人建议使用枚举而不是字符串。有什么区别?
答案 0 :(得分:7)
这只是让编译器为您工作的方法之一。如果使用字符串,编译器无法帮助您发现值中的拼写错误:
if (move == "rokc") { // just never matches
但是如果使用枚举,编译器只允许使用有效值:
if (move == Moves.Rokc) { // compilation error
答案 1 :(得分:3)
查看详细说明
枚举类型(也称为枚举或枚举)提供了一个 定义一组可能的命名积分常量的有效方法 分配给变量。
答案 2 :(得分:0)
部分地,它是一种简洁的沟通方式。字符串是一般的东西,枚举是特定的。部分地,它是为了防止错误。使用字符串可能会导致拼写和案例差异,从而导致错误。如果你错误/错误地枚举枚举,你将收到编译错误。如果你只是代表摇滚,纸张,剪刀的三种简单状态,它可能看起来不太重要,但随着你编写的代码越来越大,你会发现你想利用一切机会减少错误和清晰度的变化表达。任何编程时间足够长的人都会有很难尝试理解他们过去编写的代码。
答案 3 :(得分:0)
第一个枚举只是针对数字的标签。这意味着虽然你的代码提供了纸张,剪刀和岩石 - 程序可以看到1,2和3.计算机没有阅读或记忆的问题,但人类会这样做,所以你的代码会读取纸张,而计算机会看到1节拍从绩效的角度来看,这很重要。
该清单也是有限的。使用枚举意味着您只能拥有这三个值中的一个,否则将无法编译。使用字符串意味着您的代码必须在运行时期间不断检查是否相等 - 因此它变得臃肿,速度慢且容易出错。