据我了解 Enums in Ruby问题,你使用 Symbols
来代表 ruby 中的东西,而不是 enums
在其他语言如 java 或 C# 中。
当你有枚举时,你可以在一个地方收集相关的标识符,如下所示。从代码中可以看出,有三种颜色可用,paint
方法接受这三个值之一。
enum Color {
Red,
Yellow,
Purple
}
public void paint(Color color) {}
你如何记录ruby中相关符号的可用值?(:red
, :yellow
, :purple
) 你有吗将其放在使用它们的方法的注释中,如下所示?
# allowed colors: :red, :yellow, :purple
def paint(color)
end
最佳答案
通常我会创建一个包含允许符号的常量数组。如果你想确保它不会改变,你可以卡住它。
COLORS = [:red, :green, :blue].freeze
如果你有很多不同的元素,你可以使用%i()
语法:
COLORS = %i(red green blue yellow purple).freeze
如果您使用的是 Rails,从 4.1 版本开始就有一个 enum macro可用于 ActiveRecord::Base。
class Car < ActiveRecord::Base
enum color: %i(red green blue yellow purple)
end
Car.new(color: :red)
关于ruby - 在 ruby 中,你将相关符号(如 java 中的枚举)放在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31868908/