Answers:
变量和符号是不同的东西。变量指向不同类型的数据。在Ruby中,符号更像是字符串,而不是变量。
在Ruby中,字符串是可变的,而符号是不可变的。这意味着只需要创建一个符号的副本。因此,如果您有
x = :my_str
y = :my_str
:my_str
只会被创建一次,x
并y
指向相同的内存区域。另一方面,如果您有
x = "my_str"
y = "my_str"
包含的字符串my_str
将创建两次,x
并且y
将指向不同的实例。
结果,符号通常用作Ruby中枚举的等效项,以及字典的键(哈希)。
#mySymbol
。
Ruby中的Symbol与现实世界中的Symbol基本相同。它用于表示或命名某物。
符号非常常用于表示某种状态,例如
order.status = :canceled
order.status = :confirmed
您也可以将符号视为即时枚举。您无需定义符号,只需使用它即可。本文对它进行了详细的解释。