each를 쓰지 않고 배열 전체의 합을 구할 수 있을까요


array = [123,321,12389]

이런 정수를 저장하는 배열에서 배열의 전체 합을 구하려고 합니다.

each를 써서 직접 더하는 방법 말고 다른 sum()같은 함수는 없는건가요?

소스코드

sum = 0
array.each { |a| sum+=a }
would work.
  • 2016년 02월 23일에 작성됨

조회수 180


1 답변


좋아요
0
싫어요
채택취소하기

제일 간단한 방법으로는

array.inject(0, :+)

가 있습니다. 여기서 0은 x가 빈 배열인 경우 nil이 아닌 0을 return하려고 썼습니다.

> [].inject(:+)
nil
> [].inject(0, :+)
0

Ruby 1.8미만일 경우는

array.inject(0){|sum,x| sum + x }

로 대체하면 됩니다.

  • 2016년 02월 23일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close