두 배열 항목의 차이점을 찾으려고합니다. 예를 들어 [-1, -4], [-2, 4], [1, -2]
이 [arr[i],arr[i+1]].transpose.map{|x| x.reduce(:-)}
일 것으로 예상됩니다. 하지만 'transpose'오류가 발생합니다 : nil을 Array (TypeError)로 암시 적으로 변환하지 않습니다.Ruby에서 배열 항목의 차이를 찾는 방법
myarr =[]
i=0
arr = [[1,1],[2,5],[4,1],[3,3]]
while i < arr.length
myarr = [arr[i],arr[i+1]].transpose.map{|x| x.reduce(:-)}.dosomething
i += 1
end
def dosomething
...
end
여기서 내가 뭘 잘못하고 있니? Ruby를 처음 사용했습니다.
루프 난'에 실행 = = arr.length-1'이지만 내부에서'arr [i + 1]'을하면 인덱스가 범위를 벗어 났으므로'nil'이됩니다. –
'[] .dosomething'은 다른 * 정의되지 않은 method * 오류를 일으킬 것입니다. 당신은'module Enumerable; def dosomething() ...; 종료; 'dosomething [] .transpose.map {...}'(이것은'dosomething '을위한 매개 변수를 필요로합니다.) 결과로'dosomething'을 호출하십시오. – DMKE