在紅寶石%
是用來格式化字符串。字符串%4 - >紅寶石是什麼
str % arg → new_str
但是我不明白
number = '/javascripts/cache/money.js'.bytes.sum % 4
在此
提交https://github.com/rails/rails/commit/f6a6b51ae551b7f936e974cba3ad4b30422d6804
在紅寶石%
是用來格式化字符串。字符串%4 - >紅寶石是什麼
str % arg → new_str
但是我不明白
number = '/javascripts/cache/money.js'.bytes.sum % 4
在此
提交https://github.com/rails/rails/commit/f6a6b51ae551b7f936e974cba3ad4b30422d6804
我覺得這是%整數取模。
'/javascripts/cache/money.js'.bytes returns an Enumerator
'/javascripts/cache/money.js'.bytes.sum returns an Integer
'/javascripts/cache/money.js'.bytes.sum % 4 returns an Integer
他們可能已經定義了sum方法本身,這可能是問題的原因?
這實際上是字符串中的所有字節的簡單相加,取模4.
假設和回報一個數組的總和,你在這裏做number % number
,而不是str % arg
。
number = '/javascripts/cache/money.js'.bytes.sum % 4
是
int % int -> int
這是模方法
它取決於對象的類。
上的繩子,%
行爲就像這樣:
"Hello, %s" % ['world'] #=> "Hello, world"
注意,在紅寶石1.9.2,您可以添加名稱:
"Hello, %{name}" % {:name => "Nick"} #=> "Hello, Nick"
有關詳細信息,請參閱docs。
但是,在一個整數上,它是模函數。請參閱Fixnum docs和Numeric docs。
它的行爲像'sprintf'或'mod',具體取決於第一個參數。你的第一個例子顯示一個字符串,而第二個例子顯示一個整數。 – Chloe