스코프 분해능 연산자

Scope resolution operator

컴퓨터 프로그래밍에서 스코프표현이 연관되어 있는 둘러싸인 컨텍스트다.스코프 분해능 연산자는 특히 네임스페이스를 지정하여 식별자가 참조하는 컨텍스트를 식별하고 지정하는 것을 돕는다.특정 용도는 범위 지정의 개념에 따라 다른 프로그래밍 언어에 따라 다르다.여러 언어로 스코프 해상도 연산자를 쓴다.::.

모둘라-3(Python and Go 포함)의 영향을 받은 일부 언어에서 모듈은 객체이며, 모듈 내의 스코프 해상도는 통상적인 객체 멤버 접속의 특수한 경우이므로 통상적인 방법 연산자.스코프 분해능에 사용된다.특히 C++Ruby와 같은 다른 언어들은 다양한 방식으로 상호작용하는 스코프 해상도와 메서드 액세스 모두를 특징으로 한다. 아래 예를 참조하십시오.

C++

계급 A { 공중의:     정태의 인트로 i; // A의 범위 };  네임스페이스 B {     인트로 c = 2; }  // 네임스페이스 B  인트로 A::i = 4;  // 스코프 연산자(scope operator)는 클래스 A에서 선언한 정수를 가리킨다. 인트로 x = B::c;  // 스코프 연산자는 네임스페이스 B에 선언된 정수 c를 가리킨다. 

PHP

In PHP, the scope resolution operator is also called Paamayim Nekudotayim (Hebrew: פעמיים נקודותיים, pronounced [paʔaˈmajim nekudoˈtajim], the second word a colloquial corruption of נקודתיים, pronounced [nekudaˈtajim]), which means “double colon” in Hebrew.

PHP 3에 사용된 이스라엘이 개발한[1] 젠드엔진 0.5에 '파아마임 네쿠도타임'이라는 이름이 도입됐다.히브리어를 사용하지 않는 많은 개발자들에게 혼란을 주었지만, 이 샘플 오류 메시지에서처럼 PHP 7에서 여전히 사용되고 있다.

$ php -r :: 구문 오류: 구문 오류, 예기치 않은 T_PAAMAYIM_NEKUDOTAYIM

스코프 분해능 연산자가 없는 경우에도 유사한 오류가 발생할 수 있다.예를 들어 상수가 비어 있는지() 확인하려고 하면 다음과 같은 오류가 트리거된다.

$ php -r 'define'("foo", "bar"; (빈)"empty"를 나타내는 경우;' 구문 오류: 구문 오류, 예기치 않은 ') T_PAAMAIM_NEKUDOTAYIM을 예상함

PHP 5.4를 기준으로 스코프 분해능 연산자와 관련된 오류 메시지에는 여전히 이 이름이 포함되지만, 그 의미는 다소 명확하다.

$ php -r : : 구문 오류: 구문 오류, 예기치 않은 ':' (T_PAAMAYIM_NEKUDOTAYIM)

예를 들어 다음과 같은 잘못된 PHP 식을 사용하려고 시도하여 오류를 트리거하는 다른 덜 명확한 방법이 있다.

$ php -r 정적 constitution '$a=1' 구문 오류: 구문 오류, 예기치 않은 파일 끝, 예상: (T_PAAMAYIM_NEKUDOTAYIM)

루비

Ruby에서 스코프 해상도는 네임스페이스(클래스 또는 모듈 등)를 사용하여 지정할 수 있다.

모듈    버전 = 1.0    계급 << 자아의 # 모듈 싱글톤 클래스에 접속 중     반항하다 안녕(누구 = "세계")       "여보세요#{누구}"     종지부를 찍다   종지부를 찍다 종지부를 찍다 #/예시  ::안녕 # => "헬로 월드" .안녕 "hacker" # => "안녕 해커"  ::버전 # => 1.0 .버전 # NoMethodError  # 이는 메시지 (.) 연산자와 Ruby의 스코프 연산자 (::)의 차이를 보여준다. # 우리는 : hello와 .hello 둘 다 사용할 수 있다. 왜냐하면 hello는 예시 범위와 예시이기 때문이다. # '안녕'이라는 메시지에 응답한다. # # 우린 같은 일을 할 수 없어:버전 그리고 .버전, 버전이 예제의 범위 내에 있으므로, # 응답 방법이 없기 때문에, 예는 Version 메시지에 응답할 수 없다. 

스코프는 또한 변수 이름의 서문에 의해 영향을 받는다.

참조

  1. ^ "Scope Resolution Operator". PHP 5 Manual. Retrieved 2007-08-09.

외부 링크