You are on page 1of 7

1

1 Nomes, Vinculaes e Escopos


1.1 Nomes

1.1.1 Formas do Nome

Os nomes em Ruby so usados para se referir a variveis, mtodos, constantes,
classes e mdulos. O seu caractere inicial ir ajudar a distinguir qual o uso pretendido
para aquele nome.

1.1.2 Palavras Especiais

1.2 Variveis

1.2.1 Nome

Na linguagem Ruby, no necessrio declarar variveis da forma comum, mas
necessrio que a varivel exista para que ela possa ser utilizada. Por exemplo:
puts a # >> NameError: undefined local variable ...
a = nil
puts a # >> nil

No caso de uma varivel global, esta iniciada por $ e possui valor nil (nulo)
antes mesmo de ser inicializada:
puts $global # >> nil
$global = "oi"
puts $global # >> oi

$variavel_global = "abc"

No caso de uma varivel global, sua inicializao feita por letra minscula [a-z]
por _ (underline):
local-variable = 10

No caso de uma constante, sua inicializao feita por letra maiscula [A-Z]:
CONST = 3.1415 # >> 3.1415

2

E, se for atribudo algum valor para uma constante j inicializada, dado um
aviso porm a alterao feita mesmo assim:
CONST = 6.02e+23 # >> warning: already initialized constant Constante
puts CONST # >> 6.02e+23

No caso de uma varivel de instncia, sua inicializao feita por @:
@inst = 5

1.2.2 Endereo

1.2.3 Tipo

Ruby tem trs tipos de variveis, um tipo de constante e dois tipos de pseudo-
variveis, onde as variveis e as constantes no possui tipo nenhum. Essas variveis
sem tipo possuem vantagens que superam suas desvantagens, e que se encaixam bem
com a filosofia rpida e fcil da linguagem Ruby.

1.2.4 Valor


1.3 O Conceito de Vinculao

1.3.1 Vinculao de Atributos a Variveis

1.3.2 Vinculao de Tipos
1.3.2.1 Vinculao de Tipos Estticos
1.3.2.2 Vinculao de Tipos Dinmicos

1.3.3 Vinculao de Armazenamento e Tempo de Vida
1.3.3.1 Variveis Estticas
1.3.3.2 Variveis Dinmicas na Pilha
1.3.3.3 Variveis Dinmicas no Monte Explcitas
1.3.3.4 Variveis Dinmicas no Monte Implcitas

1.4 Escopo

3

Os tipos de escopo para uma varivel local em Ruby so: proc{}, loop{},
defend, classend, moduleend, ou o programa inteiro (caso no haja
nenhuma das opes anteriores).
1.4.1 Escopo Esttico

Ruby implementa escopo esttico. Isso quer dizer que as variveis no possuem
escopo determinado em tempo de execuo (caso do escopo dinmico); ou seja, seu
escopo determinado antes da execuo do programa.

1.4.2 Blocos
1.4.3 Ordem de Declarao
1.4.4 Escopo Global

Ruby possui uma estrutura de bloco aninhada. Isso quer dizer que declaraes no
nvel mais externo possuem escopo global, e declaraes dentro de um bloco interno
so locais ao bloco; ou seja, cada bloco est dentro de outro bloco, com um nvel a
mais.

1.4.5 Avaliao do Escopo Esttico

Em Ruby, as variveis podem ser do tipo local, global, atributos de instncias ou
de classes, e isso pode confundir na hora de gerar o escopo. Por exemplo:

$s = 2;
def scaled(d)
d*$s;
end
def teste()
s = 3;
scaled(3);
end
puts teste();

Esse cdigo imprime 6. Porm, se ao invs de s = 3 fosse colocado $s = 3,
iria ser impresso 9.
4


1.4.6 Escopo Dinmico

Ruby no implementa escopo dinmico.

1.5 Escopo e Tempo de Vida

1.6 Ambientes de Referenciamento

5

2 Tipos de Dados
2.1 Tipos de Dados Primitivos

No existem tipos de dados primitivos em Ruby. Todos os tipos so classes.

2.1.1 Tipos Numricos

uma classe abstrata que representa nmeros, dividida em nmeros inteiros
de preciso fixa (Fixnum), e nmeros inteiros de preciso infinita (Bignum).

2.1.1.1 Inteiro

uma classe que representa nmeros inteiros.

2.1.1.2 Ponto Flutuante

uma classe que representa nmeros reais.

2.1.1.3 Complexo
2.1.1.4 Decimal
2.1.1.5 Tipos Booleanos
2.1.1.6 Tipos Caractere

2.2 Tipos de Cadeia de Caracteres

2.2.1 As Cadeias e Suas Operaes

2.2.2 Opes de Tamanho da Cadeia

2.2.3 Avaliao

2.2.4 Implementao dos Tipos Cadeias de Caracteres

6

2.3 Tipos Ordinais Definidos pelo Usurio

2.3.1 Tipos Enumerao
2.3.1.1 Projetos
2.3.1.2 Avaliao

2.3.2 Tipos Subfaixa

2.3.3 Vinculaes de Subscrito e Categorias de Matrizes

2.3.4 Inicializao de Matrizes

2.3.5 Operaes com Matrizes

2.3.6

2.3.7 Fatias

Ruby suporta fatias com o mtodo slice de seu objeto Array, o qual pode
receber trs formas de parmetro. Um nico parmetro com uma expresso inteira
interpretado como o ndice. Isso faz com que o slice retorne o elemento com o ndice.
J dois parmetros com expresses inteiras para slice, o primeiro interpretado como
o ndice de incio, e o segundo interpretado como nmero de elementos na fatia. A
terceira forma de parmetros para slice uma faixa, a qual tem a forma de uma
expresso inteira, dois pontos e uma segunda expresso inteira. Com este tipo de
parmetro, o slice retorna uma matriz do elemento com a faixa de ndices.


7

3 Referncias

1. http://ruby-br.org/
2. http://www.rubyist.net/
3. http://linguagemruby.wordpress.com/ligacao-e-escopo/
4. Conceitos de Linguagens de Programao Robert W. Sebesta

You might also like