begin和end是ruby的關(guān)鍵字,但是Range中也有名稱為begin和end的實(shí)例方法?,F(xiàn)在問(wèn)題來(lái)了:怎么創(chuàng)建它們的別名方法?
如果用class Range;alias begin_x begin end是不行的,ruby以為后面一個(gè)begin是某個(gè)語(yǔ)法塊的開(kāi)頭?。?/p>
復(fù)制代碼 代碼如下:
2.1.2 :089 > class Range;alias begin0 begin end
2.1.2 :090?>
用class Range;alias begin_x "begin" end也不行,用alias begin_x :begin還是不行!
復(fù)制代碼 代碼如下:
2.1.2 :083 > class Range
2.1.2 :084?> alias begin0 :begin
2.1.2 :085 > end
2.1.2 :086?> end
SyntaxError: (irb):86: syntax error, unexpected keyword_end, expecting end-of-input
from /Users/apple/.rvm/rubies/ruby-2.1.2/bin/irb:11:in `main>'
2.1.2 :087 > class Range;alias begin0 "begin" end
SyntaxError: (irb):87: syntax error, unexpected tSTRING_BEG
class Range;alias begin0 "begin" end
^
from /Users/apple/.rvm/rubies/ruby-2.1.2/bin/irb:11:in `main>'
沒(méi)法子了嗎?我突然想到了這個(gè)語(yǔ)法:alias begin_x :"begin",這回哦鳥(niǎo)!同樣的end方法類似。
您可能感興趣的文章:- Ruby實(shí)現(xiàn)發(fā)送郵件的兩個(gè)方法
- ruby實(shí)現(xiàn)的文件自刪除代碼分享
- 初步講解Ruby編程中的多線程