그래서 최근에 루비의 reduce 메소드에서 매개 변수를 넣은 순서가 결과에 영향을 미친 것으로 나타났습니다.Ruby에서 reduce 메소드의 다른 작동 메커니즘
a = ["1", "2", "3"]
a.reduce {|val, con| val + con}
a = ["123"]
그러나
a.reduce {|val, con| con + val}
a = ["321"]
나는 단지 당신이 순서를 제공하는 방법을 중요한 생각 | 발, 사기꾼 | 페어 (con)가 후자의 위치에있는 경우, 모든 단계의 결과는 항상 사기차에 저장됩니다. 그리고이 두 가지는 동일한 결과를 가져와야합니다. 그러나 분명히 여기에 없습니다.
누구나 유용한 정보를 제공 할 수 있습니까? 감사. 이 두 메소드가 루비에서 어떻게 구현되는지에 대한 설명은 엄청난 도움이 될 것입니다.
는 https://ruby-doc.org/core-2.1.0/Enumerable.html#method-i-reduce에서 문자열 # +' – Ilya
문서 도구 '에 대해 읽어 행동과 소스 코드의 설명을 포함하시기 바랍니다 –
'String # +'은 비 교환 적이기 때문에 결과가 변경되는 것은 놀라운 일이 아닙니다. 같은 이유로 "Hello"+ "World"는 "World"+ "Hello"와 같지 않습니다. –