범위는 특정 변수나 코드에 액세스하고 사용할 수 있는 범위 또는 경계를 나타냅니다. 프로그래밍에서 패턴 변수는 특정 데이터 구조를 일치시키는 데 사용되며 해당 범위는 특정 조건이나 명령문으로 제한될 수 있습니다.
사용자가 관리자이거나 일반 사용자일 수 있는 시나리오가 있다고 가정해 보겠습니다. instanceof 연산자를 사용하여 사용자 유형을 확인한 다음 역할에 따라 특정 속성에 액세스할 수 있습니다. 이 예에서 패턴 변수의 범위는 사용자의 특정 역할로 제한됩니다.
if (user instanceof Administrator admin) { // Here we can access the properties and methods of the admin user. admin.addNewUser(); } else if (user instanceof RegularUser regUser) { // Here we can only access the properties and methods of a regular user. regUser.editProfile(); }
위 코드에서 패턴 변수 admin의 범위는 instanceof 조건이 true인 if 문으로 제한됩니다. 이는 해당 명령문 내에서 관리자의 속성과 메소드에만 액세스할 수 있음을 의미합니다.
마찬가지로 패턴 변수의 범위는 해당 변수가 도입된 명령문 이상으로 확장될 수 있습니다. 주어진 모양이 직사각형인지, 충분히 큰지 확인하는 함수가 있다고 가정해 보겠습니다. 이 경우 패턴 변수 r의 범위는 그것이 도입된 if 문 이상으로 확장됩니다.
public static boolean bigEnoughRect(Shape s) { if (!(s instanceof Rectangle r)) { // Here the pattern variable 'r' cannot be used as the instance of Rectangle is false. return false; } // However, we can access the properties and methods of the rectangle 'r' here. return r.length() > 5; }
if 문의 표현식에도 패턴 변수를 사용할 수 있습니다. 이를 통해 조건문이 true인 경우에만 패턴 변수에 액세스할 수 있습니다. 다음 예에서는 조건부 AND 연산자를 사용하여 직사각형의 길이가 5보다 큰지 확인하기 위해 패턴 변수 r을 사용합니다.
if (shape instanceof Rectangle r && r.length() > 5) { // Here we can use the pattern variable 'r' to access the properties of a rectangle only if the instance of Rectangle is true. System.out.println("This rectangle is big enough!"); }
그러나 패턴 일치를 위해 조건문에서 instanceof 연산자를 사용할 수는 없습니다. 이는 다른 유형의 범위를 확인하기 때문입니다. 다음 예에서는 Rectangle 인스턴스가 false인 경우 패턴 변수 r의 범위에 액세스할 수 없기 때문에 프로그램에서 오류가 발생합니다.
if (shape instanceof Rectangle r || r.length() > 0) { // error // Here we cannot use the pattern variable 'r' as it may or may not exist depending on the instance of Rectangle. System.out.println("This is a rectangle with a length greater than 0"); }
결론적으로 패턴 변수의 범위는 코드 내에서 패턴 변수에 액세스하고 사용할 수 있는 위치를 결정하는 데 필수적입니다. 범위를 이해함으로써 패턴 변수를 효율적으로 사용하여 데이터 구조를 일치시키고 효율적이고 오류 없는 코드를 작성할 수 있습니다.
위 내용은 Java의 패턴 변수 범위 이해의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!