Ruby符号与字面量有何作用

avatar
作者
猴君
阅读量:0

Ruby中的符号(Symbol)和字面量(Literal)都是用于表示固定值的特殊类型的常量。它们的作用和区别如下:

符号(Symbol)

  1. 唯一性:每个符号都是唯一的,即使两个符号看起来相同,它们也是不同的对象。
  2. 不可变性:一旦创建了一个符号,就不能修改它的值。
  3. 可用作哈希键:由于符号的唯一性和不可变性,它们可以用作哈希表的键。
  4. 节省内存:符号在内存中只存储一次,所有引用相同符号的变量都指向同一个对象。

字面量(Literal)

  1. 表示值:字面量用于表示程序中的固定值,如整数、浮点数、字符串、布尔值等。
  2. 可变性:字面量的值在创建后不能被修改。
  3. 可用作变量赋值:字面量可以用作变量的初始值。

符号与字面量的区别

  1. 语法:符号使用冒号(:)前缀,如:symbol_name;而字面量没有特殊的前缀。
  2. 唯一性:符号是唯一的对象,而字面量只是值的表示,可以有多个相同的字面量对象。
  3. 可变性:符号是不可变的,而字面量的值在创建后也不能被修改(对于不可变类型如整数、浮点数等)。
  4. 用途:符号通常用作哈希表的键,而字面量用于表示程序中的固定值。

示例:

# 定义符号 sym = :my_symbol puts sym.inspect  # 输出: :my_symbol  # 定义字面量 lit = 42 puts lit.inspect  # 输出: 42  # 将符号作为哈希表的键 hash = { sym => "Hello, Symbol!" } puts hash[sym]  # 输出: Hello, Symbol!  # 字面量作为变量的初始值 var = lit puts var  # 输出: 42 

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!