두 개의 배열을 사용하여 그 내용 중 하나의 문자열을 A[0] + B[0] + A[1] + B[1]
... 등의 형식으로 만드는 프로그램이 있습니다. 문제는 이것입니다 - 이상하게도, <<
연산자는 A의 첫 번째 요소를 추가하기 위해 올바르게 작동하지만 이후에는 올바르게 작동하지 않는 것 같습니다. 정확히 말하면 :공백 문자가 아닌 문자열에 대해 정의되지 않은 메서드 '+ @'공백 문자가 아닌
complexKey = "#JohnSmith_"
n = 0
#isbns = [2,3]
versions = [1,1]
isbns.each do |isbn|
complexKey << "#{versions[n]}_"
n++ #an iterator is a crude tool, but I need it to deal with iterating through multiple arrays simultaneously
complexKey << "#{isbn}_"
end
최종 결과는 "JohnSmith_1_2_1_3_"입니다. 그
'undefined method '[email protected]' for "JohnSmith_1_":String(noMethodError)
나는이를 보았다, 일반적으로 연결 연산자 전에 충분한 공백을 가지고 있지 함께 할 것 같다,하지만 : 코드가 실행되면, 나는 오류가 발생 : 그러나 문제는이입니다 여기에있는 것처럼 보이지 않습니다. 어떤 아이디어?
'+ @'는 + 1과 같이 숫자에 공통적으로 사용되는 단항 플러스입니다. 나는 당신이 제공 한 코드에서 그것을 어디에서 사용하고 있는지를 보지 못했다. 실제로이 방법으로 충돌 할 수없는 증가 만 볼 수있다. 게다가, 당신은'each_with_index'를 사용하고'n '으로 해커를 피할 수도 있습니다 : http://apidock.com/ruby/Enumerable/each_with_index –
'versions.zip (isbns) .flatten.join ('_ ')'루프 대신에. – Stefan
@matt'isbn'은 블록 변수로 할당됩니다. 그것은 정의되지 않은'isbns'입니다. – sawa