Computer >> 컴퓨터 >  >> 프로그램 작성 >> Ruby

Ruby 삼항 연산자(?:)를 사용하는 방법

Ruby에서 삼항 연산자란 무엇입니까?

삼항 연산자는 "삼항"이라는 단어가 나오는 세 부분으로 구성됩니다. 이러한 부분에는 조건문이 포함됩니다. &가능한 두 가지 결과 .

즉, 삼항은 한 줄의 코드로 간결한 if/else 표현식을 작성할 수 있는 방법을 제공합니다.

예를 들어 :

if apple_stock> 1 :eat_appleelse :buy_appleend

이것이 될 수 있음 :

<사과 스톡> 1 ? :eat_apple ::buy_apple

삼항 연산자 덕분입니다!

질문...

이것이 어떻게 작동하며 정확한 구문은 무엇입니까?

알아봅시다.

자신만의 삼항문 작성을 위한 템플릿

삼항 연산자의 구문을 일반화하면 "공백 채우기" 유형의 템플릿을 얻게 됩니다.

이렇게 생겼어요 :

<전>조건 ? 참 :거짓

삼항 연산자의 첫 번째 부분은 조건입니다. , 사실인지 아닌지 확인하고 싶은 조건처럼.

그 후에 물음표(? ).

구문의 일부입니다!

이것이 Ruby가 삼항 연산자를 작성하고 있음을 아는 방법입니다.

다음 :

조건이 true인 경우 실행하려는 코드가 있습니다. , 첫 번째 가능한 결과 .

그런 다음 콜론(: ), 또 다른 구문 요소 .

마지막으로 조건이 false인 경우 실행하려는 코드가 있습니다. , 두 번째 가능한 결과 .

:

"초콜릿".size> 4 ? "4자 이상" :"4자 미만"
  • 조건 => "chocolate".size > 4
  • True => "More than four characters"
  • Else => "Less than four characters"

이 세 부분은 모든 삼항 표현식의 구성 요소입니다.

? 메서드 이름이 물음표로 끝나는 경우에도 조건과 가능한 결과 사이.

:

"".비어 있나요? ? "예" :"아니요"

이것은 간과하기 쉬우므로 이러한 종류의 코드를 작성할 때 주의하십시오.

복잡한 삼항 연산자

삼항 연산자를 잘못 사용할 수 있습니다.

복잡한 일을 하고 싶을 때마다 나쁜 생각이 되기 시작합니다.

예를 들어 :

삼항 표현식의 결과를 변수에 할당할 수 있습니다.

<미리>a =10> 5 ? "예" :"아니요"

괜찮습니다.

그러나 가능한 결과에 공백이 있으면 더 복잡해집니다.

예시 :

10> 5 ? ("예" 입력) :("아니오" 입력)

여기에 괄호를 사용해야 합니다.

왜?

그렇지 않으면 SyntaxError가 발생하기 때문입니다. .

이 괄호는 이 코드를 이해하기 어렵게 만듭니다. , 가독성 &삼항 사용의 스타일 이점.

삼항 사용 여부를 선택할 때 이 점을 염두에 두십시오.

삼항 연산자 및 연산자 우선 순위

삼항 표현식에서 발생하는 또 다른 문제는 연산자 우선 순위입니다.

예시 :

[].tap { |a| a <<"ccccc".size ==0 ? "empty" :"비어 있지 않음" }# [5]

"empty" 또는 "not empty" , 삼항에 대한 두 가지 가능한 결과이지만 5 대신.

무슨 일이야?

Ruby와 대부분의 프로그래밍 언어는 다양한 우선 순위로 표현식을 처리하는 것으로 나타났습니다.

간단한 산술에서도 발생합니다!

아시다시피 곱셈은 덧셈과 뺄셈보다 먼저 평가됩니다.

마찬가지로 Ruby에서는 메서드 호출(<< &size )는 마지막 예의 동작을 설명하는 삼항 연산자보다 우선합니다.

괄호로 해결할 수 있습니다. :

[].tap { |a| a <<("bbbbbb".size ==0 ? "비어 있음" :"비어 있지 않음") }# ["비어 있지 않음"]

삼항 연산자를 작성할 때 명심해야 할 또 다른 사항입니다!

동영상 튜토리얼

요약

Ruby의 삼항 조건부 연산자에 대해 배웠습니다. 이 연산자를 사용하면 상황에 따라 코드를 읽기 쉽게 또는 더 어렵게 만들 수 있는 간결한 조건문을 작성할 수 있습니다.

이제 당신 차례입니다! 배운 내용을 연습하여 이 지식을 두뇌에 적용할 수 있습니다.

읽어주셔서 감사합니다 🙂