簡體   English   中英

1..self在此紅寶石代碼中是什么意思?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM