在Ruby中,符号(Symbol)和字面量(Literal)都是用来表示固定值的特殊类型的常量。它们的使用场景和特点有所不同,下面分别介绍它们的运用。
sym = :my_symbol
puts sym.object_id # 输出一个唯一的整数,表示这个符号
def my_method(arg)
arg.upcase
end
result = my_method(sym) # result 的值将是 ":MY_SYMBOL"
MY_CONSTANT = :value
class MyClass
attr_accessor :my_attribute
def initialize(value)
@my_attribute = value
end
end
obj = MyClass.new(:another_value)
puts obj.my_attribute # 输出 ":ANOTHER_VALUE"
num = 42
float_num = 3.14
str = "Hello, World!"
bool = true
[]
创建数组字面量。array = [1, 2, 3, 4, 5]
{}
创建哈希字面量。键和值之间用冒号 :
分隔,不同的键值对之间用逗号 ,
分隔。hash = {a: 1, b: 2, c: 3}
/
包围的模式字符串创建正则表达式字面量。regex = /hello/i
在这个例子中,i
修饰符表示不区分大小写。
符号和字面量可以结合使用,以创建具有特定含义和行为的常量或对象。例如,你可以使用符号作为哈希表的键,而使用字面量作为值。
colors = {
:red => "#FF0000",
:green => "#00FF00",
:blue => "#0000FF"
}
puts colors[:red] # 输出 "#FF0000"
在这个例子中,:red
是一个符号,用作哈希表的键;"#FF0000"
是一个字符串字面量,用作哈希表的值。