begin和end是ruby的關(guān)鍵字,但是Range中也有名稱為begin和end的實例方法。現(xiàn)在問題來了:怎么創(chuàng)建它們的別名方法?
如果用class Range;alias begin_x begin end是不行的,ruby以為后面一個begin是某個語法塊的開頭?。?/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>'
沒法子了嗎?我突然想到了這個語法:alias begin_x :"begin",這回哦鳥!同樣的end方法類似。
您可能感興趣的文章:- Ruby實現(xiàn)發(fā)送郵件的兩個方法
- ruby實現(xiàn)的文件自刪除代碼分享
- 初步講解Ruby編程中的多線程