일치 표현 (From the office!)
일치 표현(사무실에서!)
안녕하세요, 저는 니코입니다.
저는 런던에 본사를 둔 티켓 브로커의 수석 엔지니어입니다.
사무실에서! 일상적인 사무실 생활에서 제가 하고 있는 기술적인 일에 대해 계속 일기를 쓰는 매일의 (거의) 포스팅 루틴입니다.
PHP 8
2020년 11월 26일, 핵심 PHP 팀은 가장 빠르고 더 나은 최신 버전의 언어를 출시합니다.
생성자 속성 프로모션*,* Nullsafe 연산자 등과 같은 모든 놀라운 새 기능과 키워드 중에서 대다수의 개발자에게 정말 눈에 띄는 기능이 있습니다.
나는 일치 표현에 대해 이야기하고 있습니다
매치 식
match 표현식을 switch 문의 진화라고 생각하십시오.
이것이 하는 일은 주제 표현식을 평가하고 경우에 따라 다른 블록이나 코드 또는 명령문으로 분기하는 것입니다.
스위치와 달리 비교는 약한 동등성 검사(==)가 아닌 동일성 검사(===)입니다.
$food = 'cake';
$returnValue = match ($food) {
'apple' => 'This food is an apple',
'bar' => 'This food is a bar',
'cake' => 'This food is a cake',
};
var_dump($returnValue);
// string(19) "This food is a cake"
왜 사용하나요?
언어의 이 새로운 기능을 사용하면 많은 긍정적인 측면이 있습니다.
예를 들어, switch 문을 사용할 때 가장 성가신 점 중 하나는 코드 블록을 깨기 위해 the를 사용하는 것을 잊지 말아야 한다는 것입니다.
더 이상 휴식이 없습니다!
그렇게 하지 않으면 다음과 같은 경우 코드가 계속 실행됩니다.
이것은 물론 오류와 예상치 못한 결과로 이어졌습니다.
$i = 0;
switch ($i) {
case 0:
echo "i equals 0";
case 1:
echo "i equals 1";
break;
case 2:
echo "i equals 2";
break;
}
"i equals 0"
"i equals 1"
일치 표현식은 값을 반환합니다.
위의 예시에서 보셨겠지만, 매치 블록 내부는 배열처럼 생겼고, 매칭 조건의 값은 실제로 변수에 반환되는 값입니다.
일치 식은 조건식이 true인 한 비식별 조건 사례도 처리합니다.
다음은 예입니다.
$result = match (true) {
$age >= 65 => 'senior',
$age >= 25 => 'adult',
$age >= 18 => 'young adult',
default => 'kid',
};
스위치와 마찬가지로 팔에는 쉼표로 구분된 여러 표현식이 포함될 수 있습니다.
$result = match ($x) {
// This match arm:
$a, $b, $c => 5,
// Is equivalent to these three match arms:
$a => 5,
$b => 5,
$c => 5,
};
스위치에서 물려받은 또 다른 기능은 기본 케이스입니다.
$expressionResult = match ($condition) {
1, 3 => getFromEvens(),
2, 4 => getFromOdds(),
default => GetAll(),
};
조건이 이전 사례(1, 2, 3 또는 4)와 동일하지 않은 경우에만 GetAll() 함수가 호출됩니다.
오류가 발생하므로 기본 조건을 여러 개 입력하지 마세요!
이를 처리하는 더 좋은 방법은 표현식을 try-catch 블록 안에 래핑하는 것입니다.
$condition = 5;
try {
match ($condition) {
1, 2 => foo(),
3, 4 => bar(),
};
} catch (UnhandledMatchError $e) {
var_dump($e);
}
단점
실제로 사용하는 데 아무런 단점이 없습니다.
제 생각에는 구문이 switch 문보다 더 깨끗하고 더 우아한 방식으로 결과를 처리합니다.
내가 사용하지 않는 유일한 이유는 2~3개의 경우만 필요한 경우입니다.
그런 경우에는 대신 두 개의 단일 if 문을 선택할 수 있습니다.
당신의 테이크는 무엇입니까?
일치 표현식을 이미 사용해 보셨습니까?
그것의 사용 사례는 무엇입니까?
아래 의견에 귀하의 예를 보여주십시오.
결론
저는 거의 10년 동안 웹 개발자였습니다.
런던 중심부에 위치한 세계적인 기업 및 수상 경력에 빛나는 마케팅 대행사와 협력합니다.
또한 블로그와 온라인 커뮤니티에 기사와 튜토리얼을 작성하고 기업이 온라인에서 입지를 구축하도록 돕습니다.
Click here to read more than 100+ of my blog post
Reference
이 문제에 관하여(일치 표현 (From the office!)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/anastasionico/the-match-expression-from-the-office-2n0a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)