Ruby:
Organizando o código em funções

Como fazer:

Imagine que você está escrevendo um script rápido para cumprimentar usuários:

def cumprimentar(nome)
  "Olá, #{nome}!"
end

puts cumprimentar("Alice")   # Saída: Olá, Alice!
puts cumprimentar("Bob")     # Saída: Olá, Bob!

Ou talvez você esteja calculando a área de um círculo:

def area_circulo(raio)
  Math::PI * raio ** 2
end

puts area_circulo(5)   # Saída: 78.53981633974483

Mais organizado e fácil de lidar, certo?

Aprofundamento

O conceito de funções, também conhecido como métodos em Ruby, não é novidade — é tão antigo quanto a programação em si. Retornando aos anos 1950, as sub-rotinas, como eram conhecidas, foram introduzidas para reduzir a redundância.

Alternativas? Claro, você tem o código inline, poderia adotar a POO com classes e objetos, ou até mesmo funcional com lambdas e procs. Mas as funções são a base de um código ordenado. Quer desempenho? Variáveis locais em funções são rápidas e as funções podem retornar valores imediatamente com return.

Em termos de implementação, você pode definir uma função com def e terminá-la com end. Você pode definir parâmetros padrão, usar operadores splat para funções variádicas e mais. As funções podem ser tão simples ou complexas quanto você desejar.

Veja também