Objetivo

O escopo na programação é o espaço no código onde uma variável é definida e visível. O escopo diferencia as regiões de um programa e a maneira como o programa define e usa as variáveis. Se uma variável tem uma definição específica em todo o programa, independentemente da função em que aparece, seu escopo é global. Variáveis ​​com escopo global são as mesmas em todo o código-fonte. Em contraste, o escopo local define uma variável para uma função particular; ele só existe dentro dessa função.

A definição de escopo é um pouco enganosa; também se refere a como uma variável funciona dentro de um programa, não apenas a área na qual a variável é definível e visível. O termo escopo indica apenas a área coberta, não a ação realizada; pesquisadores e desenvolvedores entendem as limitações do termo e entendem que escopo significa tanto a definição quanto o comportamento de uma variável.

Escopo estático vs. dinâmico

Escopo estático (lexical) e dinâmico são dois tipos de escopo que ocorrem na programação; estática é de longe o mais comum. Se um programa tiver escopo estaticamente ou léxico, uma variável dentro de uma função retornará seu valor atribuído para aquele escopo sempre que a função for executada. Por exemplo, se uma variável x = 5 em uma determinada função e uma definição condicional subsequente para x também for fornecida, x = 5 onde quer que o escopo do programa o defina como tal.

O escopo dinâmico, no entanto, chama a definição mais recente dessa variável, independentemente da estrutura do programa. No exemplo acima, se x = 5, mas depois x foi definido posteriormente com um valor de 10, um programa com um escopo dinâmico chamaria x = 10 se esse valor tivesse sido usado mais recentemente. O escopo dinâmico é menos estruturado do que o escopo estático; ele puxa definições de variáveis ​​da pilha de chamadas em vez da área na qual seriam definidas logicamente.