2016-10-11 5 views
1

여러 개의 할당을 사용하고 싶지만 입력 값의 일부는 신경 쓰지 않습니다. 그렇다면 void 변수 (배시에서 /dev/null이라고도 함)에 무언가를 할당하는 방법이 있습니까? nil = 'I wont be used'과 같은 것입니다. 나는 아래에서 성취하고자하는 구체적인 예를 가지고있다.루비의 다중 할당을 사용하여 void 변수에 값을 할당하려면 어떻게해야합니까?

['no','foo','nop','not at all','bar'] 

그리고 나는 이런 식으로 할당합니다 :

내 입력은

nil,foo,*nil,bar = ['no','foo','nop','not at all','bar'] 
+0

는 일반적인 대안은 바로 사용할 수 있습니다 :

ary = ['no','foo','nop','not at all','bar'] foo, bar = ary.values_at(1, -1) foo #=> "foo" bar #=> "bar" 

이 지표 외에, 그것은 또한 범위를 허용을 '_ '는 자리 표시 자 var로 사용됩니다. – halfelf

답변

3
_, foo, *_, bar = ['no','foo','nop','not at all','bar'] 
foo #=> "foo" 
bar #=> "bar" 
_ #=> ["nop", "not at all"] 

: 내가하고 싶은 무엇

i,foo,dont,care,bar = ['no','foo','nop','not at all','bar'] 
#or with a splat : 
dont,foo,*care,bar = ['no','foo','nop','not at all','bar'] 

이 같은 뭔가를 *_을 다음으로 대체 할 수도 있습니다. 단지 *.

예, _은 완벽하게 유효한 로컬 변수입니다.

물론 사용하지 않을 값으로 _을 사용할 필요는 없습니다. 예를 들어, 오류의 가능성을 줄일 수 있습니다 _를 사용

cat, foo, *dog, bar = ['no','foo','nop','not at all','bar'] 

을 쓸 수 있지만, 주로 당신이 그 값을 사용하지 않을 독자를 이야기하기위한입니다. 일부는 사용되지 않습니다 값을 밑줄로 시작하는 변수 이름 사용을 선호 : 당신이 배열의 요소가 있다는 것을 적은 수의 변수를 할당하는 경우

_key, value = [1, 2] 

를 배열의 마지막 요소는 삭제됩니다 . 예를 들어,

a, b = [1, 2, 3] 
a #=> 1 
b #=> 2 
+0

제 조언은 여러분이 얻는 것을보기 위해 다른 표현으로 놀아 보는 것입니다. 기본 규칙은 변수에 값을 하나만 할당한다고 결론을 내릴 수 있다면 괜찮습니다. '* a, b, * c = [1,2,3,4,5]'는 할당이 불명확하여 Ruby가 예외를 발생시키는 예입니다. –

+0

'_some_random_name'을 쓰더라도 _interused variable_ flag를 제거하면 _interused variable_ flag가 제거됩니다. –

+0

@UlysseBN, 나는 "linter"를 따르지 않지만, 일부는'_unused_key'라고 쓰고 있습니다. 나는 그 대답을 편집했다. 감사. –

1

또한 배열의 특정 요소를 추출하는 values_at을 사용할 수

ary.values_at(0, 2..3) #=> ["no", "nop", "not at all"] 
관련 문제