Ruby的爱好者越来越多了,相比较前段时间了解的Scala,会显得单纯些(不必限于其它平台基础上)。Ruby的变量,有些细节需要注意,否则,一不小心就会犯错。

1. Ruby变量注意点
Ruby变量要注意以下几点:

  • 局部变量:小写或下划杠“_”开头
  • 全局变量:$开头
  • 实例变量:@开头
  • 类变量:@@开头
  • **虚变量:**false、true、self等特定名称的变量
  • 常数:必须以大写字母开头

2. 局部变量和全局变量的区别
局部变量和全局变量的区别看看以下代码就清楚了:
hi.rb

# encoding: UTF-8

$a = 5 #全局变量
a = 10 #局部变量

require './embedit.rb'

puts("$a = #{$a}; a = #{a}")

embedit.rb

$a = 50 #全局变量
a = 100 #局部变量

ruby hi.rb运行结果:
$a = 50; a = 10

Ruby是面向对象的,每个变量都有个object_id,比如前面的$a和a的object_id

puts("$a.object_id = #{$a.object_id}; a.object_id = #{a.object_id}")

结果:
$a.object_id = 101; a.object_id = 21

3. Ruby的命名规则
另外,Ruby的命名规则,我的习惯大致如下所列:

  • 变量、方法用连线隔开:print_greetings
  • 类名和模块名用首字母大写隔开:PrintGreetings

enter image description here