Ruby 中的inject方法

2021-07-03 23:58:15 字數 1178 閱讀 2859

ruby inject

1 求和

inject 方法的兩種用法

enum.inject(init_value)

enum.inject

第一種,result 以init_value為初始值

第二種,result以element裡的第乙個元素為初始值。

[1,2,3,4].inject(0) #=>10

[1,2,3,4].inject(1) #=>11

2.將乙個陣列中的元素複製到另乙個陣列中

方法一:

arr = 

arr2 = [1,2,3,4,5,6,7]

arr2.each

do |i|

arrp arr

方法二:

arr = arr2.inject() do |arr1,i|

arr1<< i

endp arr

2.選擇出陣列中的偶數

b = [1, 2, 3, 4, 5, 6]

array = b.inject() do |result, element|

ifelement % 2 == 0

result

<< element.to_s

else

result

endend

p array

array1= [1, 2, 3, 4, 5, 6].inject() do |result, element|  

result

<< element.to_s if

element % 2 == 0

result

endp array1

3.將陣列轉換成hash

a = [[:name1, 'shane'], [:name2, 'harvie'],[:name3, 'harvie']]

hash = a.inject({}) do |result, element|

result[element.first] = element.last

result

endp hash

ruby中的方法查詢

ruby中的方法呼叫都是物件.方法的形式,那麼物件如何找到這個方法呢?首先必須了解祖先鏈的概念,祖先鏈就是從乙個類開始,到它的父類,再到父類的父類.一直到最終的起點 ruby中是basicobject類 這期間經歷過的路徑就是祖先鏈。1混含模組和繼承的方法查詢 對於乙個例項物件,先找它屬於的類中是否...

ruby中attr accessor方法的理解

attr accessor相當於attr reader和attr writer的合集,實際上是在定義類成員變數的時候就給他定義了乙個get和set方法。在ruby中,類成員變數都是私有的,不能直接通過 類名.成員變數名 這樣來對成員變數值進行操作。在這個例項中可以看到,使用attr accessor...

Vue中的provide和inject 依賴注入

一 名詞解析 provide object object inject array provide 提供依賴 是乙個物件,或者是乙個返回物件的函式。裡面呢就包含要給子孫後代的東西,也就是屬性和屬性值。inject 注入依賴乙個字串陣列,或者是乙個物件。屬性值可以是乙個物件,包含from和defaul...