É impressionante como as linguagens de programação possuem tantas características em comum umas com as outras, que os conceitos se misturam o tempo todo e cada uma das linguagens vão ter as suas particularidades. Você já notou que umas linguagens necessitam de bastante código-fonte para implementar funcionalidades comuns. O Java e o C#, em sua totalidade necessita de mais escrita de código do que, por exemplo, a linguagem Python. E quando há bastante código, é super importante a organização de onde vai ficar cada parte do seu script, bem como onde as variáveis podem ser manipuladas. Essa separação recebe o nome de escopo (scope).
Escopos
Existem vários tipos de escopos dependendo do tipo de linguagem que você vai utilizar. Pense assim, seu código vai precisar fazer determinadas ações. Aí você precisa organizar o seu script de modo que uma parte não interfira na outra parte. Então, semanticamente, as linguagens criam regras de “onde cada coisa deve ficar” e na sua escrita (sintaxe), você utiliza delimitadores para separar o seu código dentro do programa, de modo que uma funcionalidade não interfira na outra.
Vou explicar utilizando uma analogia. Imagine que você vai escrever uma receita de bolo, igual ao exemplo do artigo “Programar é conversar com o computador. Apenas Conversar!”. Primeiro separe os ingredientes, que representam as variáveis, em um escopo:
Definição escopo das variáveis:
- 3 xícaras de chá de farinha de trigo
- 2 xícaras de chá de açúcar
- 3 ovos
- …Etc,
Agora você vai separar o escopo das funcionalidades. Funcionalidades tem relação com funções, e as funções são recursos, utilizados na programação, que estão relacionados com ações. Nesse exemplo da receita de bolo temos as funções: juntar, misturar, adicionar, despejar, etc. E cada parte dessas funções, tem o seu próprio escopo. Esse tipo de escopo, chamamos de escopo da função ou escopo de bloco.
Definição do escopo da função/escopo de bloco:
- Numa tigela, junte os ovos, o açúcar e a manteiga.
- Misture tudo muito bem e adicione o leite.
- Continue misturando e depois adicione toda a farinha de trigo.
- … Etc.
Como falei, existem vários tipos de escopos. Por enquanto, nos exemplos que mostrei em todos os artigos até agora, só utilizamos o escopo das variáveis e o escopo de instrução. E todos esses escopos estão dentro de um escopo principal, e algumas linguagens de programação vão ter, como no PHP, Python e JavaScript, um escopo global e nas linguagens como Java, C++ e C#, vão possuir um escopo de classe.
Talvez para agora, essa explicação sobre escopo, não esteja fazendo muito sentido! Mas não se preocupe!!! Por enquanto, é importante você saber da existência dessas áreas de escopos e saber sobre escopo, é a parte fundamental para entender o que é uma função. Vamos fazer o seguinte… Vou mesclar a explicação sobre escopo, com a definição de uma função em linguagem de programação.
Funções (functions)
Fiz uma breve apresentação no começo deste artigo, informando que funções são coisas que estão relacionados com ações. E dei como exemplo para a receita de bolo, que a receita possui as seguintes funções/ações: juntar, misturar, adicionar, despejar, etc. Ai eu te pergunto, o que essas ações representam? Pense assim, “misturar”, é a ação/função de utilizar outros ingredientes (variáveis) e utilizar elementos, como a batedeira ou colher, para poder unir os ingredientes (manipular variáveis). Até aqui tudo bem? Continuando… Para essa ação “misturar”, é como se estivéssemos criando “pequenos” pedaços de instruções, que podemos repetir quantas vezes quisermos.
Estou chegando lá! Agora você vai aprender o que é função kkkkk Vou dar outro exemplo de uma função. Imagine que você quer criar uma “funcionalidade” para somar (função/ação) dois valores e ainda coloca uma mensagem padrão com o seguinte texto “O resultado da soma é: “. Primeiro, como iríamos escrever nosso programa sem o uso de função? Ficaria assim:
Observe que toda vez você tem que digitar a frase “O resultado da soma é: “, ficaria muito “estranho” ter que ficar linha a linha repetindo “O resultado da soma é: “. Já imaginou ter que escrever linha a linha com essa frase mais de mil vezes? Seria algo totalmente improdutivo. Para resolver esse tipo de problema, você pode separar um pedaço de código com escopo próprio em uma função. Dessa forma, uma vez que for definido a função, toda vez que você chamar essa função, ela vai executar tudo o que estiver dentro do seu escopo e produzir um resultado esperado. Veja como fica esse exemplo com o uso de funções ou functions:
Viu que recurso interessante? Mais uma vez vou repetir: todas as linguagens de programação possuem características comuns e o que vai mudar de uma para a outra, em sua grande maioria, são a sua forma de escrita(sintaxe). Em PHP utilizamos a palavra reservada “function” para definir uma função, já em na linguagem de programação como Python, uma função é definida utilizado a palavra reservada “def”. Uma curiosidade em relação à linguagem Python, é que ela não utiliza chaves “{}” para separar o seu escopo de função. Veja o mesmo exemplo utilizando Python:
O uso de funções nas linguagens de programação são muito comuns, uma vez que você consegue isolar uma pequena parte de um código. Desse modo você não precisa escrever o mesmo pedaço de código diversas vezes. Sacou? Agora vou mostrar para você porque cada função possui o seu próprio escopo. Veja o exemplo a seguir em PHP:
O que aconteceu com esse script? Declarei a variável $valor no escopo fora do escopo da função e tentei utilizar dentro do escopo da função. Só que apareceu uma mensagem erro. Porque tudo o que está fora do escopo da função, não enxerga o que está dentro do escopo da função. Para você enviar esse valor da variável $valor para dentro da função, só especificando no seu parâmetro ( exibir(<parâmetro>)). Veja:
Futuramente vou explicar melhor sobre o uso de parâmetros de funções em exemplos práticos. Por enquanto, foque no conceito! Entenda o que é e para que serve uma função, bem como suas restrições de escopo. Vamos ver outro exemplo! Imagine agora que você definiu a variável apenas dentro do escopo da função e tentou acessar essa variável fora do escopo da função? Veja o que vai acontecer:
Também gerou um erro, porque nesse exemplo, fora do escopo da função a variável $valor não existe kkkkk Percebe a importância? Literalmente é “cada escopo no seu quadrado kkkkk”. Enfim… Nesse artigo você viu um exemplo em que fiz um código que retorna repetidamente a frase “O resultado da soma é: “. E fazer repetir “coisas”, também é uma característica que todas as linguagens de programação possuem. Esse recurso chama-se laços de repetição ou loops, e esse será o conteúdo do próximo artigo, “Principais características de uma linguagem de programação e sua escrita – parte 6”. Até lá!
Confiança Sempre!!!
Be First to Comment