If 与 Unless 修饰符
你可能还记得第 5 章中提到的 while
循环的替代语法。替换这样的写法:
while tired do sleep end
…我们可以这样写:
sleep while tired
这种将 while
关键字放在循环代码和测试条件之间的替代语法称为 ‘while 修饰符’(while modifier)。事实上,Ruby 也提供了 if
和 unless
修饰符。这是一些示例:
if_unless_mod.rb
sleep if tired
begin
sleep
snore
end if tired
sleep unless not tired
begin
sleep
snore
end unless not tired
当你在某些测试条件为 true 时要重复执行一些明确的操作时,这种简洁的语法是很有用的。例如,在常量 DEBUG
为 true 时你的代码可能需要输出一些调试信息。
puts( "somevar = #{somevar}" ) if DEBUG
constants.rb
常量(Constants)
Ruby 中的常量以大写字母开头。 类名就是常量。你可以使用constants
方法获取所有已定义常量的列表: Object.constantsRuby 提供了 const_get
和 const_set
方法来获取和设置特定的以符号命名的常量的值(标识符前面带有冒号,如 :RUBY_VERSION
)。请注意,与许多其它编程语言中的常量不同,Ruby 中的常量可以为其分配新的值: RUBY_VERSION = “1.8.7” RUBY_VERSION = “2.5.6”上面给 RUBY_VERSION
常量重新赋值会产生一个 ‘已初始化的常量’(already initialized constant)的警告(warning)- 但不是错误(error)!