다음은 동일한 결과를 생성 할 두 문장을 다음과 같이하는 경우가 %w
% w를 언제 사용합니까?
arr = %w(abc def ghi jkl)
및
arr = ["abc", "def", "ghi", "jkl"]
사용되어야한다?
위의 경우에는 배열 ["abc", "def", "ghi", "jkl"]
이 필요합니다. 이상적인 방법은 무엇입니까? 이전 (%w
) 이상입니까?
다음은 동일한 결과를 생성 할 두 문장을 다음과 같이하는 경우가 %w
% w를 언제 사용합니까?
arr = %w(abc def ghi jkl)
및
arr = ["abc", "def", "ghi", "jkl"]
사용되어야한다?
위의 경우에는 배열 ["abc", "def", "ghi", "jkl"]
이 필요합니다. 이상적인 방법은 무엇입니까? 이전 (%w
) 이상입니까?
일반 배열 대 %w[...]
을 사용하는 경우? 나는 당신이 그 두 가지를보고, 그걸 입력하고, 방금 한 일을 생각함으로써 이유를 생각할 수있을 것이라고 확신합니다.
배열로 바꾸려는 단어의 목록이있는 경우 %w[...]
을 사용하십시오. %w[...]
은 새 요소를 배열에 쉽게 추가 할 수 있기 때문에 루프를 끝내려는 매개 변수가 있거나 명령에 추가 할 항목을 알고있을 때 사용합니다. 배열의 정의에는 시각적 노이즈가 적습니다.
%w
을 트릭 할 수있는 공백이 포함 된 요소가있을 때 일반 문자열 배열을 사용하십시오. 문자열이 아닌 요소를 포함해야하는 배열에 사용하십시오. 쉼표를 사용하여 "
및 '
사이의 요소를 쉼표로 묶으면 시각적 노이즈가 발생하지만 모든 객체 유형으로 배열을 만들 수도 있습니다.
그래서 당신이 가장 이해할 때 어느 쪽을 사용해야하는지 선택합니다. "프로그래머의 선택"이라고합니다.
정확하게 지적했듯이, 동일한 결과를 생성합니다. 따라서, 결정할 때 더 간단한 코드를 생성하는 것을 선택하십시오. 이 경우 %w
연산자입니다. previous question의 경우 배열 리터럴입니다.
%w
을 사용하면 문자열 주위에 따옴표를 사용하지 않아도됩니다. 또한
더 많은 단축키는 다음과 같은있다 :
%W - double quotes
%r - regular expression
%q - single-quoted string
%Q - double-quoted string
%x - shell command
자세한 내용은 "What does %w(array) mean?"%의 w``와
, 당신이 당신의 따옴표 및 이스케이프 할 필요가 없습니다에서 사용할 수 있습니다 귀하의 코드가 더 차갑게 보입니다. '% w '를 사용하는 두 가지 좋은 이유. – oldergod
@oldergod는 따옴표가 있지만 공백을 넣지 않은 것은 희귀합니다. –