Table of Contents

Ruby

Integrantes:

  • Rubens Junio Humberto Barbosa Peres
  • Alvaro Joan Gonçalves dos Santos

Nomes

Em Ruby, as variáveis obrigatoriamente possuem nomes definidos em letras minúsculas, que podem conter não somente letras, mas também dígitos e o sinal underscore. Em Ruby basta que o nome seja iniciado com letra maiúscula, que o interpretador entende que é uma constante, o padrão para escrita dos nomes é o mesmo que do Java. Todas as letras maicusculas e nomes separados por underscore. Uma curiosidade do Ruby é que mesmo que seja uma constante é possível alterar seu valor, o interpretador irá aceitar normalmente ele apenas irá lançar uma mensagem de alerta.

No nível mais baixo, um pograma Ruby é simplesmente uma sequência de caracteres. As regras léxicas de Ruby são definidas usando caracteres da tabela ASCII. Todas as palavras-chave de Ruby são escritas usando caracteres ASCII, e todos os operadores e pontuações são retirados da tabela ASCII.

Palavras reservadas: em Ruby normalmente não podem ser utilizadas para outros propósitos. Somadas a essas palavras-chaves, há três tokens que são interpretadas especialmente pelo parser de Ruby quando são encontradas no início de uma linha: =begin, =end, _END_ Você pode estar acostumado a pensar que um valor falso pode ser representado por zero, uma string nula, um caractere nulo, ou muitas outras coisas. Mas em Ruby, todos esses são verdadeiros; de fato, tudo é verdadeiro, exceto as palavras reservadas false e nil.

É case sensitive, ou seja, letras minúsculas são diferentes de letras maiúsculas;

Variáveis

Todas as variáveis são objetos, onde até os tipos primitivos(inteiro, real, etc) são classes.O Ruby possui três variedades de variável, uma variedade de constante e duas pseudo-variáveis. As variáveis e as constantes não têm que ser de um tipo pré-definido. Embora possa haver desvantagens numa linguagem que não força a declaração de tipos para as variáveis (isto é, o Ruby é uma untyped language), esta liberdade está de acordo com a classificação de linguagem de programação fácil, atribuída ao Ruby.

Pode-se inferir o tipo - variável ou constante - associado a um dado nome, a partir desse nome. Em Ruby o nome permite distinguir imediatamente entre variável e constante, por forma que não são necessárias declarações e é imediatamente visível a olho nu o tipo associado ao nome. Esta facilidade é conveniente para a programação, mas torna difícil a descoberta de erros de escrita (typos) em Ruby quando comparada com linguagens que obrigam à declaração das variáveis (typed languages).

A associação entre o nome e o tipo associado é inferida a partir do primeiro caracter da variável. Eis a convenção:

$       variável global
@       variável de instância
[a-z]   variável local
[A-Z]   constante

A excepção a esta regra são as duas pseudo-variáveis self e nil. Embora segundo a convenção devessem ser variáveis locais, visto começarem por uma minúscula, nil é na realidade constante e self é uma variável global mantida pelo compilador. Como só existem estas duas pseudo-variáveis em Ruby, não há grande perigo de haver confusões.

self    o actual objecto em execução
nil     valor nulo (indica 'false')

A linguagem permite que trabalhemos com faixas de valores como se estivéssemos trabalhando com um objeto qualquer. Isto permite uma grande flexibilidade na hora de codificação. Faixas de valores são, por exemplo, a..z, A..Z, etc… Variáveis são somente referências para objetos. Nada mais. Não existem ponteiros. Apesar desta lacuna, aliasses de objetos podem ser feitos, como em Java.

Escopo:

Em Ruby as variáveis têm seu escopo determinado pelo nome. De certa forma, isso “oficializa” o hábito de nomear os diferentes tipos de variáveis usando diferentes regras de nomenclatura, encontrado em outras linguagens (por ex.: iniciar nomes de classes com letras maiúsculas, terminar variáveis de instância com sublinhado, etc.).

Tipagem:

Tipagem dinâmica, mas forte. Isso significa que todas as variáveis devem ter um tipo (fazer parte de uma classe), mas a classe pode ser alterada dinamicamente.

 
ruby-2-trabalho.txt · Last modified: 2012/03/29 22:57 by clp · [Old revisions]