0
我正在處理大型圖像陣列,所以我已經打包了它。要訪問數組中的像素,我已經實現了兩種方法。Woking with Packed Arrays,access data
def get_p(a)
data=a.unpack('S9s')
end
def put_p(array,index_a,value)
index=index_a[0]
k=array.unpack('S9s')
k[index]=value
k.pack('S9s')
end
它的工作原理,但我想知道是否有更優雅的方式來做到這一點。使我的代碼看起來不同於我的標準數組函數。
If get_p(image_data[i][j+1])[BLOB]==0
VS
if image_data[i][j+1][BLOB]==0
而且,不知道是否有人關心,但解包似乎並沒有被記錄任何地方,我很幸運,在這裏找到一個參考,但它花了一些時間。
不錯,很乾淨,明天我會試試 – bobbdelsol
好的,我終於回到了這裏。我花了一段時間找到所有我打包/解包的地方並修復它們。但這項工作非常出色。我結束了這樣的初始化 @ image_data = Array.new(rows){Array.new(columns,PackedArray.new)} 然後我像這樣初始化。 DEF初始化 陣列= Array.new(CHANNELS,0) @ packed_array = array.pack( 'S9S') 端 但所有在所有的碼是更嚴格和cleanner – bobbdelsol
想我提到,當我由於對數組元素的賦值不屬於對象,所以我得到了混疊缺陷的變化。所以我的第一個clean pass創建了一個mxn數組,指向同一個對象:)。我將元素分配給PackedArray對象,而不使用dup來確保它是副本。 – bobbdelsol