Funções

O que é uma função ?

Uma função é um método que não é associado a um objeto em particular. Você já viu uma função: "puts". Observe a sintaxe:


puts "Hello" # mesmo que: object.puts "Hello"  
                       

Hello World com uma função

Aqui está uma simples função :


def say_hi
    puts "Hello, How are you?"  
end
                       

Aqui nós definimos a função say_hi. Quando você chamar a função "say_hi", o bloco de código especificado será chamado. Por exemplo:


def say_hi
    puts "Hello, How are you?"  
end

say_hi
say_hi
                       

Vai produzir:


"Hello, How are you?"
"Hello, How are you?"
                       

Como você pode ver, as funções são o primeiro passo na reutilização de código.

Parâmetros da função

Funções e métodos podem receber parâmetros. Aqui está uma nova função say_hi.


# 'name' contains the user input
def say_hi(name)
    puts "Hello " + name + ", How are you?"  
end

say_hi("Daniel")
say_hi "Sandy" 
                       

Isso produz :


Hello Daniel, How are you?  
Hello Sandy, How are you?
                       

Imprimindo um endereço

Agora vamos escrever uma função mais útil . Relembre a estrutura de dados:


# Melissa's address
melissa_addr = {
	"street" => "23 St George St.",  
	"city"   => "Silver Spring",
	"state"  => "MD",
	"zip"    => "20465"
}

# Sandy's address
sandy_addr = {
	"street" => "324 Campus Dr.",
	"city"   => "College Park",
	"state"  => "MD",
	"zip" 	 => "23659"
}
                       

Vamos fazer uma função para imprimi-las :


def print_addr(address)
    state = address["state"]
    zip   = address["zip"]

    puts "    " + address["street"]  
    puts "    " + address["city"]
    puts "    " + state ", " + zip
end
                       

Agora vamos facilmente imprimir o endereço com :


puts "Melissa:"
print_addr(melissa_addr)  

puts "Sandy:"
print_addr(sandy_addr)
                       

E isso mostra :


Melissa:
    23 St George St.  
    Silver Spring
    MD, 20465
Sandy:
    324 Campus Dr.
    College Park
    MD, 23659
                       

 

topo da página

<< Página Anterior | índice | Próxima Página >>
Apostilas de Ruby e RGSS

nossos tutoriais

navegue

livros recomendados