2015-05-01 281 views
-5

我打得/紅寶石學習和做了一些如下述代碼片段,並得到:紅寶石``**方法

1 ** 5 # => 1 
43 ** 67 # => 27694053307656599023809257877241042019569010395053468294153499816223586030238186389799480520831161107426185107 

什麼是**操作員紅寶石?爲什麼我第二次查詢的結果數量太大?

+0

您的問題是什麼? – sawa

回答

-1

**是指數操作符 - 它執行指數(功率)計算。讓我通過這個簡單的例子說明

2 ** 2 => 2 * 2 => 4

2 ** 3 => 2 * 2 * 2 => 8

2 ** 4 = > 2 * 2 * 2 * 2 => 16

2 ** 5 => 2 * 2 * 2 * 2 * 2 => 32

所以** 43 67 => 43 * 43 * 43 * 43 ................................................. ..............

所以它導致這樣一個大數。

獲取有關operatorts的更多詳細信息http://www.tutorialspoint.com/ruby/ruby_operators.htm

2

這是一個power數學運算符:

2 * 3 
# => 6 

2 ** 3 
# => 8 
2

在Ruby中,**是指數運算符。也就是說,通過做a**b,你正在提高a的權力b。按照慣例,操作數之間沒有空格。

例子:

3**2 
#=> 9 

2**3 
#=> 8 

注意的是,指數運算符具有比乘法和除法的優先級高,就像數學:

2 * 2**3 # (2 * 8) 
#=> 16 

18/3**2 # (18/9) 
#=> 2 

如果鏈中的運營商,優先從解決向右:

2**2**3 == 2**(2**3) # (2^8) 
#=> true 
1

**指數 - 執行對運營指數(功率)計算

1 ** 5 = 1 

意味着它將執行像1*1*1*1*1五次

如果你嘗試這種

2**4 = 16 

意味着它將執行像2*2*2*2四次

0

它只是這樣做:

2 * 4 => 8 

2 ** 4 => 64 

它當作第2功率(2)^ 4 => 2 * 2 * 2 * 2