WikiDer > Қолдану аясын анықтау операторы

Scope resolution operator

Жылы компьютерлік бағдарламалау, ауқымы мұнда қоршаудағы контекст құндылықтар және өрнектер байланысты. The ауқымды анықтау операторы ан контекстін анықтауға және анықтауға көмектеседі идентификатор сілтемені, атап айтқанда а аттар кеңістігі. Белгілі бір пайдалану әр түрлі болады бағдарламалау тілдері ауқымдылық ұғымдарымен. Көптеген тілдерде ауқымды анықтау операторы жазылады ::.

Кейбір тілдерде, әсіресе әсер еткен тілдерде Модула-3 (оның ішінде Python және Барыңыз), модульдер болып табылады нысандар, және модуль ішіндегі ауқымның шешімі - бұл әдеттегі әдіс операторының объект мүшелеріне қол жетімділіктің ерекше жағдайы . ауқымды шешу үшін қолданылады. Басқа тілдер, атап айтқанда C ++ және Рубин, әр түрлі тәсілдермен өзара әрекеттесетін ауқымдылықты және әдіске қол жетімділікті; төмендегі мысалдарды қараңыз.

C ++

сынып A {қоғамдық:    статикалық int мен; // А ауқымы};аттар кеңістігі B {    int j = 2;}  // аттар кеңістігі Bint A::мен = 4;  // ауқым операторы А класында жарияланған i бүтін санына сілтеме жасайдыint х = B::j;  // ауқым операторы B атау кеңістігінде жарияланған j бүтін санына сілтеме жасайды

PHP

Жылы PHP, ауқымды анықтау операторы деп те аталады Паамайым Некудотайым (Еврей: פעמיים נקודותיים‎, айтылды[paʔaˈmajim nekudoˈtajim], екінші сөз נקודתיים ауызекі сыбайластық, айтылды[nekudoˈtajim][қарама-қайшы]), бұл «қосарланған тоқ ішекИврит тілінде »деп жазылған.

«Паамайым Некудотайым» атауы Израильде дамыған елдерде енгізілген[1] Zend Engine 0,5-те қолданылған PHP 3. Еврей тілін білмейтін көптеген әзірлеушілер үшін түсініксіз болғанымен, ол PHP 7-де қолданылады, мысалы, қателік туралы хабарламада:

$ php -r ::Бөлім қатесі: синтаксистік қате, күтпеген T_PAAMAYIM_NEKUDOTAYIM

Ұқсас қате, егер ауқымды ажыратудың операторы болмаса, орын алуы мүмкін. Мысалы, тұрақтының бос екенін тексеруге тырысу () осы қатені тудырады:

$ php -r 'define («foo», «bar»); егер (бос (foo)) «бос» жаңғырық; 'Бөлім қатесі: синтаксистік қате, күтпеген ')', T_PAAMAYIM_NEKUDOTAYIM күтілуде

PHP 5.4-тен бастап, ауқымды шешу операторына қатысты қате туралы хабарлар осы атауды қамтиды, бірақ оның мағынасын біршама түсіндірді:

$ php -r ::Бөлім қатесі: синтаксистік қате, күтпеген '::' (T_PAAMAYIM_NEKUDOTAYIM)

Қатені тудыратын басқа айқын емес тәсілдер бар, мысалы, келесі жарамсыз PHP өрнегін қолдануға тырысу:

$ php -r статикалық const $ a=1Бөлім қатесі: синтаксистік қате, файлдың күтпеген аяқталуы, күтілетін :: (T_PAAMAYIM_NEKUDOTAYIM)

Рубин

Жылы Рубин, қолдану ауқымын анықтауға болады атаулар кеңістігі (мысалы, сыныптар немесе модульдер).

модуль Мысал  Нұсқа = 1.0  сынып << өзіндік # Біз модульдің синглтон класына кіреміз    деф Сәлеметсіз бе(ДДСҰ = «әлем»)      «Сәлеметсіз бе #{ДДСҰ}"    Соңы  СоңыСоңы # / МысалМысал::Сәлеметсіз бе # => «Сәлем әлем»Мысал.Сәлеметсіз бе «хакер» # => «Сәлем хакер»Мысал::Нұсқа # => 1.0Мысал.Нұсқа # NoMethodError# Бұл хабарлама (.) Операторы мен Ruby ішіндегі ауқым операторы арасындағы айырмашылықты көрсетеді:: :)# Біз :: hello және .hello екеуін де қолдана аламыз, өйткені сәлем - бұл мысал шеңберінің бөлігі және мысал# хабарламаға жауап береді.## Біз мұны :: Version және .Version көмегімен жасай алмаймыз, өйткені Нұсқа Мысалдың шеңберінде, бірақ# Мысал нұсқасына жауап бере алмайды, өйткені жауап беру әдісі жоқ.

Ауқымы да әсер етеді sigils алғы сөздің ауыспалы атаулары:

Әдебиеттер тізімі

  1. ^ «Көлемді шешу жөніндегі оператор». PHP 5 нұсқаулығы. Алынған 2007-08-09.

Сыртқы сілтемелер