在Ruby中,符號(Symbol)和字面量(Literal)是兩種不同的概念,但它們都可以用來表示固定的值。下面分別介紹它們的定義和用法。
符號(Symbol)
:my_symbol
或 :hello_world
。# 創建符號
sym1 = :my_symbol
sym2 = :hello_world
# 符號作為方法的參數
def my_method(sym)
puts "The symbol is: #{sym}"
end
my_method(sym1) # 輸出:The symbol is: :my_symbol
# 符號作為哈希的鍵
hash = {sym1 => "value1", sym2 => "value2"}
puts hash[:my_symbol] # 輸出:value1
字面量(Literal)
123
表示數字,"hello"
表示字符串,true
表示布爾值等。# 數字字面量
num = 123
puts num # 輸出:123
# 字符串字面量
str = "hello"
puts str # 輸出:hello
# 布爾字面量
bool = true
puts bool # 輸出:true
# 數組字面量
arr = [1, 2, 3, 4, 5]
puts arr.inspect # 輸出:[1, 2, 3, 4, 5]
# 哈希字面量
hash = {a: 1, b: 2, c: 3}
puts hash.inspect # 輸出:{:a=>1, :b=>2, :c=>3}
總結:符號和字面量都是Ruby中表示固定值的方式,但它們具有不同的特性和用途。符號是不可變的、唯一的標識符,通常用于表示方法名、變量名等;而字面量則是直接表示固定值的表示法,可以用于表示數字、字符串、布爾值等。