Nesta aula iremos aprender como criar variáveis, quais os tipos de variáveis e quais os tipos de dados que utilizamos em Ruby.
No Ruby temos esses tipos principais(Data Types):
Classe | Descrição | Exemplo |
---|---|---|
Fixnum Integer | Numeros "normais" | 1 |
Bignum Integer | Numeros grandes | 999999999999 |
Float | Numeros Decimais | 7.0 |
Complex | Numeros Imaginários | 4 + 3i |
Rational | Frações | 9/4 |
BigDecimal | Números decimais de alta precisão | 0.99999999999 |
"
, você pode concatenar usando
#{}
, já com aspas simples terá que usar sinal de
+
.
Acesso o irb
para testar alguns códigos
# Tudo é um objeto.
> 1.class
=> Integer
No Ruby temos acesso a métodos específicos de conversão, por exemplo: Dada variável a, para converter para um inteiro, basta fazer
# Converte para inteiro
a.to_i
# Converte para string
a.to_s
xis = 1 # variável simples.
@xis = 1 # é uma variável de instância.
@@xis = 1 # é uma variável de classe.
$Xis = 1 # é uma variável global.
No Ruby a Orientação a Objetos é um conceito essencial para o entendimento da linguagem, você pode estudar mais O.O. através dos outros vídeos do canal, como os de C#.
No irb
você pode testar o método .methods
, que retorna todos métodos disponiveis para aquela classe.
> BasicObject.methods
Observe que nas versões mais novas do Ruby, 2.5 ou 2.7 você receberá um retorno diferente no 1.class
, na aula o professor usa o Ruby 2.3.3, onde retornava Fixnum, nas versões mais novas ouve uma mudança para o Integer como tipo numérico básico.
Com o .superclass
você consegue ver a classe pai daquela classe.
Você pode configurar o seu RVM como 2.3.3 no .rvmrc
para acompanhar as aulas como foi ensinado nas aulas passadas.
Agora criaremos um arquivo aula.rb
, lembrando de criar o arquivo Gemfile com o source 'https://rubygems.org'
e gem 'byebug'
require 'byebug'
debugger
h = {}
puts "string".class
puts 1.class
puts 1.class.superclass
puts 1.class.superclass.superclass
puts 4.3.class
puts 4.3.class.superclass
puts nil.class
puts h.class
puts :symbol.class
puts [].class
puts (1..8).class
Você pode rodar usando ruby aula.rb
, com o byebug a tecla n
, avança para a próxima linha.
Lembrando da questão da tipagem, você não podera trabalhar uma variável string
em determinadas operações com um inteiro sem fazer o casting(conversão de tipo),
require 'byebug'
debugger
a = 1 # é uma variável local.
puts a
@a = 2 # é uma variável de instância.
puts @a
@@a = 3 # é uma variável de classe.
puts @@a
$a = 4 # é uma variável global.
puts @a
A = 5 # Uma constante.
puts A
Exemplo variável de instância
require 'byebug'
debugger
@a = 1
def teste
puts @a
end
teste
Exemplo de variável de classe fora da classe, executa mas exibe um aviso.
require 'byebug'
@@a = 1 # Maneira errada de fazer
class Teste
@@a = 4
def a
puts @@a
end
end
puts Teste.new.a
Mais exemplos
require 'byebug'
# Maneiras corretas de fazer
$a = 2
A = 3
class Teste
def initianlize
# variável de instância
@a = 4
end
# variável de classe
@@a = 4
# Aqui você pode acessar uma variálvel global ou uma constante
def a
# constante
A
# variável global
$a
end
end
puts Teste.new.a
Arquiteto de software, analista, programador, professor. Danilo criou o projeto torne-se um programador, para passar o seu conhecimento para a nova geração. Com o intuito de ser um bom pai, Danilo trabalha muito motivado para garantir o futuro de sua filha.