Ruby 2.4参考手册
语言 | 3Language
Miscellaneous Syntax
结束表达
Ruby 使用换行符作为表达式的结尾。当用操作符结束一行时,打开括号,逗号等等,表达式将继续。
您可以用;(分号)结束表达式。分号经常使用ruby -e。
缩进
Ruby 不需要任何缩进。通常,ruby程序缩进两个空格。
如果您在运行 ruby 时启用了警告并且缩进不匹配,您将收到警告。
alias
alias关键字是最常用的别名的方法。在对方法进行别名时,可以使用其名称或符号:
alias new_name old_name
alias :new_name :old_name
对于方法,通常可以使用 Module#alias_method 来代替alias。
您也可以使用alias别名全局变量:
$old = 0
alias $new $old
p $new # prints 0
您可以在任何范围内使用alias。
undef
undef关键字防止电流类从响应调用指定的方法。
undef my_method
您可以使用符号而不是方法名称:
undef :my_method
你可以解开多个方法:
undef method1, method2
您可以undef在任何范围内使用。另请参阅模块#undef_method
defined?
defined? 是一个返回描述其参数的字符串的关键字:
p defined?(UNDEFINED_CONSTANT) # prints nil
p defined?(RUBY_VERSION) # prints "constant"
p defined?(1 + 1) # prints "method"
您不需要使用括号defined?,但由于其优先级低,因此推荐使用defined?。
例如,如果你想检查一个实例变量是否存在,并且实例变量是零:
defined? @instance_variable && @instance_variable.zero?
这会返回"expression",如果未定义实例变量,这不是您想要的。
@instance_variable = 1
defined?(@instance_variable) && @instance_variable.zero?
在检查实例变量是否定义时添加括号是更好的检查。nil当实例变量未定义且false实例变量不为零时,这会正确返回。
使用特定的反射方法,如 instance_variable_defined?例如变量或 const_defined?对于常量而言,比使用更不容易出错defined?。
BEGIN 和 END
BEGIN定义在当前文件中的任何其他代码之前运行的块。它通常用于单线和ruby -e。同样END定义一个在任何其他代码之后运行的块。
BEGIN必须出现在顶层,END在方法内使用时发出警告。
这里是一个例子:
BEGIN {
count = 0
}
你必须使用{,}你可能不会使用do和end。
这是一个示例单线程,它将标准输入或参数列表中的任何文件的数字相加:
ruby -ne 'BEGIN { count = 0 }; END { puts count }; count += gets.to_i'
语言 | 3Language相关
Ruby 是一种面向对象、命令式、函数式、动态的通用编程语言,是世界上最优美而巧妙的语言。
| 主页 | https://www.ruby-lang.org/ |
| 源码 | https://github.com/ruby/ruby |
| 版本 | 2.4 |
| 发布版本 | 2.4.1 |
加载中,请稍侯......