保留字(reserved word)壁顶,指在高級語言中已經(jīng)定義過的字,使用者不能再將這些字作為變量名或過程名(方法名)使用冲秽。
保留字包括關(guān)鍵字和未使用的保留字忿危。關(guān)鍵字則指在語言中有特定含義,成為語法中一部分的那些字七扰。在一些語言中奢赂,一些保留字可能并沒有應(yīng)用于當(dāng)前的語法中,這就成了保留字與關(guān)鍵字的區(qū)別颈走。一般出現(xiàn)這種情況可能是由于考慮擴(kuò)展性膳灶。例如,Javascript有一些未來保留字立由,如abstract轧钓、double、goto等等锐膜。
在 ruby中 保留字仍舊可以作為標(biāo)識符(例如方法名稱)
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"
區(qū)別
- alias是ruby的關(guān)鍵字 alias_method是方法
- alias_method 必須使用 symbol或者字符串 alias則沒這種限制毕箍,推薦使用symbol
- 作用域不同 alias是關(guān)鍵字,在進(jìn)行詞法分析的時候讀到源代碼的時候?qū)⑵洚?dāng)做self枣耀,alias_method 是方法self在運(yùn)行時決定
** 推薦使用alias_method 其靈活性更大**