Also known as shadowing
preferowanie odwołań do obiektu (zmiennej, podprogramu, itp.) lokalnego dla danego bloku od odwołań do obiektu zewnętrznego
Przesłanianie w programowaniu, to właściwość występująca w językach programowania, polegająca na tym, iż deklarowany i definiowany w pewnym bloku (np. podprogramie, instrukcja blokowej itp.) obiekt lokalny (np. stała, zmienna, podprogram itp.), o nazwie (identyfikatorze) identycznym z pewnym obiektem zewnętrznym (globalnym), staje się w tym bloku widoczny i wszystkie odwołania występujące w kodzie źródłowym realizowane za pomocą wybranej nazwy w obrębie tego bloku, są kierowane do obiektu lokalnego (element przesłaniający), natomiast obiekt zewnętrzny staje się w danym bloku niewidoczny, tzn. nie można się do niego odwołać wprost, za pomocą jego nazwy (element przesłaniany). Można się do obiektu globalnego odwołać jedynie za pomocą innych konstrukcji językowych, o ile są w danym języku programowania dostępne, takich jak wskaźniki, selekcje, przemianowania, nakładanie zmiennych, itp. Nowo zdefiniowany obiekt lokalny przesłaniający element zewnętrzny, może mieć całkowicie inne znaczenie i atrybuty – jest całkowicie nowym obiektem programu istniejącym niezależnie i w sposób niezwiązany z wcześniej utworzonym obiektem zewnętrznym. Charakterystyczną cechą elementów przesłaniających jest to, że ich czas istnienia jest krótszy niż elementu przesłanianego (pewnym wyjątkiem są elementy statyczne, np. zmienna statyczna). Przykłady: W powyższych programach realizujących podobny przebieg, wypisany zostanie komunikat: a=1, bez względu na wartość wczytaną w podprogramie get_a, gdyż podprogram ten wczyta daną do zmiennej lokalnej, która przesłania w bloku tego podprogramu zmienną globalną o tym samym identyfikatorze, natomiast w podprogramie głównym odwołanie następuje do zmiennej globalnej, której przypisano wartość 1 – w podprogramie głównym nie zdefiniowano lokalnej zmiennej o tym identyfikatorze, a więc w podprogramie głównym nie nastąpiło przesłonięcie zmiennej globalnej. Jednakże dla języka C istnieje metoda "dostania się" do zmiennej globalnej 'a'. Należy zdobyć adres zmiennej 'a', następnie skorzystać ze wskaźnika o innej nazwie. W takowy sposób ze środka funkcji get_a otrzymamy dostęp do zmiennej globalnej 'a'.
Abstract from DBpedia / Wikipedia · CC BY-SA
Discovered by embedding cosine similarity (sentence-transformers MiniLM, 384-dim).