保留字(reserved word),指在高级语言中已经定义过的字,使用者不能再将这些字作为变量名或过程名(方法名)使用。
保留字包括关键字和未使用的保留字。关键字则指在语言中有特定含义,成为语法中一部分的那些字。在一些语言中,一些保留字可能并没有应用于当前的语法中,这就成了保留字与关键字的区别。一般出现这种情况可能是由于考虑扩展性。例如,Javascript有一些未来保留字,如abstract、double、goto等等。
在 ruby中 保留字仍旧可以作为标识符(例如方法名称)
alias和alias_method都可以用来为方法定义别名
alias new_name old_name
alias_method(new_name, old_name)
class Student
def full_name
'Shisi'
end
alias name full_name
alias :n1 :full_name
alias_method :n2, :full_name
alias_method 'n3', 'full_name'
end
class Student
def full_name
'Shisi'
end
alias name full_name
alias :n1 :full_name
alias_method :n2, :full_name
alias_method 'n3', 'full_name'
def self.add_name
alias :n4 :full_name
end
def self.add_name1
alias_method :n5, :full_name
end
end
class S1 < Student
def full_name
'ss'
end
add_name1
add_name
end
irb(main)>S1.new.n4
=> "Shisi"
irb(main)> S1.new.n5
=> "ss"
区别
- alias是ruby的关键字 alias_method是方法
- alias_method 必须使用 symbol或者字符串 alias则没这种限制,推荐使用symbol
- 作用域不同 alias是关键字,在进行词法分析的时候读到源代码的时候将其当做self,alias_method 是方法self在运行时决定
** 推荐使用alias_method 其灵活性更大**