Ruby는 Functional Programming 패러다임에서 나온 아이디어를 사용하여 어려움을 겪고 있습니다. 즉, 모든 것이 표현식이므로 값을 반환합니다. 이것은 자바와 같은 언어는 정말 (:
public boolean test() {
boolean x = if (1 > 2) { false; } else { true; };
return x;
}
단순히 문법적으로 유효하지 않습니다 예를 들어)을 지원하지 않는 아이디어, 조건문에 대한도 마찬가지입니다.
당신은 루비 터미널에서 볼 수 있습니다
will_be_assigned_nil = false if (1 > 2) # => nil
will_be_assigned_nil # => nil
따라서, 귀하의 질문에. 첫 번째는 다음과 같이 쓸 수있다 :
if x < y
mininum = x
else
minimum = y
end
두 번째는 다른 언어의 삼항 연산자 같고,하는 것과 같습니다
if x > y
max = x
else
max = y
end
그것은 뿌리를 언어의 & 유산을 기억하는 것이 도움이 그들의 구조를 이해하려고 할 때. Ruby는 Perl과 철학을 공유하는 "하나 이상의 방법"을 공유하며 관용적 인 루비 코드는 종종 우아함을 강조합니다.
"표현식 후"스타일 조건문이 이에 대한 좋은 예입니다. 내 방법의 시작 가드 표현이있는 경우, 그것은 나를 기록 할 드물지 않다 :
raise "Pre-condition x not met" unless x # (or "if !x" , preference thing)
raise "Pre-condition y not met" unless y # etc., etc.
대신
if !x
raise "Pre-condition x not met"
end
if !y
raise "Pre-condition y not met"
end
"당신이 날 같은 일반적인 경우-else 문에서 다음을 작성하는 데 도움 수 이?" - 나는이 질문을 이해하지 못한다. –
질문에 대한 답을 바꾸 었습니다. :) –