這是activesupport擴充套件的乙個方法。原**如下:
class symbol
def to_proc
proc.new
endend
它擴充套件出這種用法:
(1..5).map(&:to_s)
map原本是要接受乙個block引數,普通的用法是:
(1..5).map
或者:proc = proc.new
(1..5).map(&proc)
上面這個(1..5).map(&:to_s)用法可以拆成3步來解釋:
sym = :to_s
proc = proc.new
(1..5).map(&proc)
有個疑問,經過yanping.jia解釋,map(&:to_s)因為出現了&符號,所以:to_s會執行to_proc方法,然後與&一起合成&proc交給map處理。雖然說得通,不過我總覺得這個解釋中,&這個符號做了2次工作,是否合理?
這種用法原本是ruby extensions project發明的,在ror中作了點修改。原來的版本是:
class symbol
def to_proc
proc
endend
它使用2個引數來分出乙個引數,而ror版本則使用shift分出來。
剛才又想了一下,yanping.jia的解釋應該是合理的,直譯器看到&:id時,先會判斷是否是乙個方法呼叫,如果是則需要把:id轉成乙個proc。否則就是語法錯誤了。
情懷這種東西
風光無限是你,跌落塵埃也是你,重要的是你,而不是怎樣的你。若我的運氣能幫到你,你全拿去。這一句 你 啟發了給你的加油詩 天官賜福 情懷這種東西不能當飯吃,不能當錢花,不能當面子使,百無一用,卻在某種意義上是一種內生的力量,有了它,生活並沒有陽光明媚,光鮮亮麗,但是沒有它乙個人卻會像乙個洩了氣的皮球,...
這種心態,值得擁有
坦然的心態 幸運不可能永遠降臨於乙個人的頭上,反倒是各種各樣的困難時常陪伴左右。僅僅有以坦然的心態面對一切困難,才不會讓困難毀掉自己的意志,才有希望跳出困境的漩渦。快樂的心態 人生中不順利的事情非常多,自然也就擁有太多的不快樂的理由。以快樂的心態主宰自己的情緒,事情往往產生更加積極的結果。適應的心態...
實習第十四天 seekTo這種用法是錯誤的
在mediaplayer中 有幾個過程都是非同步的,乙個是 prepare過程,乙個是seekto過程,mediaplayer.prepare mediaplayer.seekto millis 或者 mediaplayer.prepareasync mediaplayer.seekto 如果是這樣...