2023.12.14
패턴매칭에서 예시문제로 나온 코드에서
패턴매칭이란?
식에 특정한 규칙 또는 패턴이 있는지 확인하기 위해 사용되는 기법이다.
is 연산자를 if문에서 사용할때, 패턴이 일치하면 새로운 변수를 선언하고 해당 값을 변수에 할당합니다.
o가 int라면
if문 자체가 실행되지 않고
따라서 조건문도 실행되지않음 => number가 생성되지않음
출력 불가
o가 int가 아니라면
if문이 실행되며
o가 int가 아니기때문에 => number도 생성되지않음
return된다
고 생각했는데 아니었다 o가 int라면 *은 number만큼 출력되었다..
왜 false인 조건문이 실행되는걸까?
number가 생성되는 과정이 이해가 안되었으나 괄호() 안에 있는 식은 언제나 먼저 계산된다는 것이 떠올랐다.
전혀 예상하지못했다. if문보다, 조건문의, 괄호 안의 식이 먼저 계산된 것이다.
조건식이 true인지 false인지 계산되기전, 괄호 안에 있는 is 연산자가 먼저 실행되어 number를 생성하고,
논리부정(!)이 적용되어 , 그 후에 if문이 실행되었기 때문이었던 것이다. 이렇게 number는 생성되어 출력이 되었다.
프로그램이 돌아가는 순서를 아는게 정말 중요하다는것을 깨달았다.
디버깅을 잘하자!
'Game Development > c#' 카테고리의 다른 글
C#/Unity 메모 (0) | 2023.12.20 |
---|---|
ToString() 오버라이딩 (0) | 2023.12.20 |
[상속] 다형성 : new가 아닌 override로 메서드를 재정의하는 이유 (0) | 2023.12.19 |
Return없이 변수값 바꾸기 : 참조 전달 방식(ref), 반환형 전달 방식(out) (0) | 2023.12.18 |
메서드 체이닝과 쿼리 구문 (0) | 2023.12.15 |