2013-08-24 2 views
0

여기 입력 배열의 마지막 요소가 해시 테이블인지 확인하는 함수가 있습니다. 그렇다면 해시 테이블의 마지막 요소를 제거합니다. 이것은 Ruby Monk 섹션 6.2의 해결책에서 온 것입니다.무엇이 무엇입니까? operator do do Ruby

def remove_last(*arguments) 
    options = arguments[-1].is_a?(Hash) ? arguments.pop : {} 
end 

무엇이 '?' 연산자는 ... (해시)할까요? arguments.pop ...

왜 arguments.pop 뒤에 ': {}'이 올까요?

+1

Ruby 서적을 읽습니다. – sawa

답변

2

3 진 조건부 연산자입니다.

condition ? true_value : false_value 

그것은 조건을 평가하고 조건에 해당하는 경우 true_value의 값을 가정하며 false_value은 조건이 거짓 인 경우에는 다음과 같은 형태를 갖는다. 문

+0

좋은 답변입니다. 간결한. – anthropomorphic

+1

질문하는 질문에 대한 기본적인 이해가 부족하기 때문에 주제를 벗어난 상태로이 질문을 닫아야합니다. – xaxxon

2

은 간결하고 그것은 당신이 짧은있을 때마다 당신은이를 사용할 수 있습니다

if arguments[-1]is.A?(Hash) 
    arguments.pop 
else 
    {} 
end 

바로 가기처럼 년대 ternary operator

입니다

제공하는 예에서는 옵션이 계속 적용됩니다. ain arguments.pop if arguments [-1] .is_a? (Hash) 그렇지 않으면 옵션에 {}로 표시된 빈 해시가 포함됩니다.

0

그것은 삼항 연산자

(condition) ? (use_this_if_true) : (use_this_if_false) 
라고하면