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
|