2011-01-30 4 views
1

나는 add_underscore(string)과 같이 함수를 실행하여 보편적으로 변환하려는 문자열 집합이 있습니다.집합 변환

반복 코드없이이 작업을 수행하는 고유 한 구문 방식이 있습니까?

+0

호기심에서, 당신은'Set' 또는'Array'를 사용하고 있습니까? –

+0

A 검색 가능성을 활용하기 위해 설정합니다. – inyourcorner

답변

4

map을 사용하여 컬렉션의 각 요소에 함수를 적용 할 수 있습니다. MYYN의 대답에

>> a = [ "a", "b", "c", "d" ] 
=> ["a", "b", "c", "d"] 
>> a.map { |x| x.upcase } 
=> ["A", "B", "C", "D"] 
+0

위대한, 고마워! – inyourcorner

3

건물 ... map 새로운 배열을 반환하도록

set = [ 'one', 'two', 'three', 'four' ] 

# in Ruby 1.9 this: 
set.map &:capitalize # => [ 'One', 'Two', 'Three', 'Four' ] 

# is the same as this: 
set.map { |x| x.capitalize } 

주, 그것은 기존 수정하지 않습니다. 또한 enumerable을 사용하여 배열의 각 항목을 반복합니다. 이렇게하는 것이 여전히 최선의 방법입니다. 단지 당신이 알고 싶어 할 것 같았습니다.

+0

잘 고맙습니다. 감사합니다. 그것은 아주 작아서 괜찮습니다. 구문 론적으로 그것은 내 옛날 루프보다 좋아 보인다. – inyourcorner