[ruby] 심볼 배열 만들기

이와 같은 작업을 수행하는 더 확실한 방법이 있습니까?

%w[address city state postal country].map(&:to_sym) 
#=> [:address, :city, :state, :postal, :country]

나는 %s내가 원하는 것을했을 것이라고 생각 했지만 그렇지 않았습니다. 그것은 대괄호 사이의 모든 것을 가져 와서 큰 상징을 만듭니다.

약간의 성가심.



답변

원래 답변은 ’11 년 9 월에 작성되었지만 Ruby 2.0부터는 기호 배열을 만드는 더 짧은 방법이 있습니다! 이 리터럴 :

%i[address city state postal country]

당신이 원하는 것을 정확하게 할 것입니다.


답변

너무 문자 그대로 될 위험이 있으므로 심볼 배열을 구성하는 가장 깨끗한 방법은 심볼 배열을 사용하는 것입니다.

fields = [:address, :city, :state, :postal, :country]

그보다 더 간결한 것은 생각할 수 없습니다.


답변

%i[ ] 공백으로 분리 된 보간되지 않은 기호 배열 (루비 2.0 이후)

%I[ ] 공백으로 분리 된 보간 된 기호 배열 (루비 2.0 이후)

%i[address city state postal country]

가장 깨끗한 방법은 다음과 같습니다.

%w[address city state postal country].map(&:to_sym)


답변