[英]What does 1..self mean in this ruby code?
我似乎無法弄清楚1..self在此代碼中的含義..更具體地說,我無法弄清楚在此范圍內self會返回什么? (例如,我知道1 ... 10是什么意思
class Fixnum
def palindrome_below i
(1...self).select{|f| f.to_s(i) == f.to_s(i).reverse}
end
end
謝謝您的幫助。
palindrome_below
定義是Fixnum
的實例方法 。 實例方法是可以在類的實例上調用的功能(與在類本身上調用的類方法相反)。
給定此代碼, Fixnum
任何實例都可以訪問palindrome_below
方法,其中self
指的是Fixnum
實例本身 (而i
指的是傳遞給方法調用的參數)。
14.palindrome_below(5)
#=> [1, 2, 3, 4, 6, 12] # `self` refers to the Fixnum `14`
因此,下面的輸出與上面的示例相同:
(1...14).select{|f| f.to_s(5) == f.to_s(5).reverse}
#=> [1, 2, 3, 4, 6, 12]
x...y
創建一個間隔為(x, y]
的Range
。在您的上下文中, self
指的是Fixnum
的實例。
Fixnum
一個實例可以在一個本地機器字中表示的任何整數。 這是一個簡單的示例:
class Fixnum
def double
self * 2
end
end
# self is `2`
2.double # => 4
# self is `8`
8.double # => 16
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.