我創建了以下擴展打開一個參數爲接收器
class String
def is_a_number? s # check if string is either an INT or a FLOAT (12, 12.2, 12.23 would return true)
s.to_s.match(/\A[+-]?\d+?(\.\d+)?\Z/) == nil ? false : true
end
end
我怎樣才能使它作爲一個鏈接的方法工作?
is_a_number?("10") # returns true
"10".is_a_number? # returns an error (missing arguments)
更新
感謝澤,mikej和拉蒙對他們的答案。至於建議,我改變了類對象,並擺脫了參數(或多個):
class Object
def is_a_number? # check if string is either an INT or a FLOAT (12, 12.2, 12.23 would return true)
to_s.match(/\A[+-]?\d+?(\.\d+)?\Z/) != nil
end
end
現在工作完全正常:
23.23.is_a_number? # > true
感謝球員...