SlideShare uma empresa Scribd logo
Lógica de Programação com
Ruby
Funções
Ricardo Silva
O que são e para que servem?
- Até agora nós conseguimos construir alguns programas bacanas, porém sempre
em um único arquivo.
- E se nossos programas precisassem ganhar novas funcionalidades? Seria
interessante continuar deixando tudo em um unico lugar?
- Nosso sistemas virariam verdadeiros monstrinhos caso essa forma de programar
que adotamos até aqui continuasse, concorda?
- Para amenizar esse problema nós recorremos ao uso de funções!
- Uma função ajuda a evitar duplicação de código, de maneira que um bloco de
código pode ser guardado dentro dessa função e ser executado sempre que o
nome da função for chamada(invocada)
Exemplo
- No exemplo acima criamos uma função que sempre que invocada executará o
bloco de código contido nela. Nesse caso seria uma verificação se o número 2 é
par ou ímpar.
- Esse exemplo é legal, mas é bastante limitado, pois ele sempre verifica o mesmo
valor (número dois). E se a gente quisesse verificar outro número?
Parâmetros
- Para isso podemos utilizar parâmetros, que nada mais são que valores passados
nas funções para que uma determinada lógica seja executada.
- Vamos modificar um pouco o exemplo anterior para podermos utilizar
parâmetros e deixar nossa função mais poderosa
Retorno de função
- Funções podem retornar valores para que possamos utilizá-los em outras partes
do nosso programa
Limpando nosso código
Exercício
- Escolha um dos exercícios realizados durante o curso e tente refazê-lo utilizando
funções

Mais conteúdo relacionado

Mais procurados

Drupal 8 Desacoplar la lógica de negocio del framework
Drupal 8 Desacoplar la lógica de negocio del frameworkDrupal 8 Desacoplar la lógica de negocio del framework
Drupal 8 Desacoplar la lógica de negocio del framework
Manuel López Torrent
 
Spring Boot
Spring BootSpring Boot
Spring Boot
Jaran Flaath
 
Startup Legal and IP
Startup Legal and IPStartup Legal and IP
Startup Legal and IP
Bruno Lowagie
 
Boost your App with Gatling
Boost your App with GatlingBoost your App with Gatling
Boost your App with Gatling
Knoldus Inc.
 
Selenium
SeleniumSelenium
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...
Edureka!
 
GraalVM Native and Spring Boot 3.0
GraalVM Native and Spring Boot 3.0GraalVM Native and Spring Boot 3.0
GraalVM Native and Spring Boot 3.0
MoritzHalbritter
 
Android structure
Android structureAndroid structure
Android structure
Kumar
 
Ansible
AnsibleAnsible
Ansible
Rahul Bajaj
 
Laravel 5
Laravel 5Laravel 5
Laravel 5
lukzgois
 
Android Development in a Nutshell
Android Development in a NutshellAndroid Development in a Nutshell
Android Development in a NutshellAleix Solé
 
Springboot Microservices
Springboot MicroservicesSpringboot Microservices
Springboot Microservices
NexThoughts Technologies
 
Spring boot jpa
Spring boot jpaSpring boot jpa
Spring boot jpa
Hamid Ghorbani
 
Django Rest Framework | How to Create a RESTful API Using Django | Django Tut...
Django Rest Framework | How to Create a RESTful API Using Django | Django Tut...Django Rest Framework | How to Create a RESTful API Using Django | Django Tut...
Django Rest Framework | How to Create a RESTful API Using Django | Django Tut...
Edureka!
 
Rest API Automation with REST Assured
Rest API Automation with REST AssuredRest API Automation with REST Assured
Rest API Automation with REST Assured
TO THE NEW Pvt. Ltd.
 
Mobile application testing tutorial
Mobile application testing tutorialMobile application testing tutorial
Mobile application testing tutorial
Lokesh Agrawal
 
apidays Paris 2022 - The 12 Facets of the OpenAPI Specification, Steve Sfartz...
apidays Paris 2022 - The 12 Facets of the OpenAPI Specification, Steve Sfartz...apidays Paris 2022 - The 12 Facets of the OpenAPI Specification, Steve Sfartz...
apidays Paris 2022 - The 12 Facets of the OpenAPI Specification, Steve Sfartz...
apidays
 
CI:CD in Lightspeed with kubernetes and argo cd
CI:CD in Lightspeed with kubernetes and argo cdCI:CD in Lightspeed with kubernetes and argo cd
CI:CD in Lightspeed with kubernetes and argo cd
Billy Yuen
 
Software Craftsmanship
Software CraftsmanshipSoftware Craftsmanship
Software Craftsmanship
Sandro Mancuso
 
Microservices Interview Questions and Answers | Microservices Architecture Tr...
Microservices Interview Questions and Answers | Microservices Architecture Tr...Microservices Interview Questions and Answers | Microservices Architecture Tr...
Microservices Interview Questions and Answers | Microservices Architecture Tr...
Edureka!
 

Mais procurados (20)

Drupal 8 Desacoplar la lógica de negocio del framework
Drupal 8 Desacoplar la lógica de negocio del frameworkDrupal 8 Desacoplar la lógica de negocio del framework
Drupal 8 Desacoplar la lógica de negocio del framework
 
Spring Boot
Spring BootSpring Boot
Spring Boot
 
Startup Legal and IP
Startup Legal and IPStartup Legal and IP
Startup Legal and IP
 
Boost your App with Gatling
Boost your App with GatlingBoost your App with Gatling
Boost your App with Gatling
 
Selenium
SeleniumSelenium
Selenium
 
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...
 
GraalVM Native and Spring Boot 3.0
GraalVM Native and Spring Boot 3.0GraalVM Native and Spring Boot 3.0
GraalVM Native and Spring Boot 3.0
 
Android structure
Android structureAndroid structure
Android structure
 
Ansible
AnsibleAnsible
Ansible
 
Laravel 5
Laravel 5Laravel 5
Laravel 5
 
Android Development in a Nutshell
Android Development in a NutshellAndroid Development in a Nutshell
Android Development in a Nutshell
 
Springboot Microservices
Springboot MicroservicesSpringboot Microservices
Springboot Microservices
 
Spring boot jpa
Spring boot jpaSpring boot jpa
Spring boot jpa
 
Django Rest Framework | How to Create a RESTful API Using Django | Django Tut...
Django Rest Framework | How to Create a RESTful API Using Django | Django Tut...Django Rest Framework | How to Create a RESTful API Using Django | Django Tut...
Django Rest Framework | How to Create a RESTful API Using Django | Django Tut...
 
Rest API Automation with REST Assured
Rest API Automation with REST AssuredRest API Automation with REST Assured
Rest API Automation with REST Assured
 
Mobile application testing tutorial
Mobile application testing tutorialMobile application testing tutorial
Mobile application testing tutorial
 
apidays Paris 2022 - The 12 Facets of the OpenAPI Specification, Steve Sfartz...
apidays Paris 2022 - The 12 Facets of the OpenAPI Specification, Steve Sfartz...apidays Paris 2022 - The 12 Facets of the OpenAPI Specification, Steve Sfartz...
apidays Paris 2022 - The 12 Facets of the OpenAPI Specification, Steve Sfartz...
 
CI:CD in Lightspeed with kubernetes and argo cd
CI:CD in Lightspeed with kubernetes and argo cdCI:CD in Lightspeed with kubernetes and argo cd
CI:CD in Lightspeed with kubernetes and argo cd
 
Software Craftsmanship
Software CraftsmanshipSoftware Craftsmanship
Software Craftsmanship
 
Microservices Interview Questions and Answers | Microservices Architecture Tr...
Microservices Interview Questions and Answers | Microservices Architecture Tr...Microservices Interview Questions and Answers | Microservices Architecture Tr...
Microservices Interview Questions and Answers | Microservices Architecture Tr...
 

Destaque

Logica de programação. introdução[AULA-1]
Logica de programação. introdução[AULA-1]Logica de programação. introdução[AULA-1]
Logica de programação. introdução[AULA-1]
Ricardo Silva
 
Estrutura de repetição com Ruby[AULA-3]
Estrutura de repetição com Ruby[AULA-3]Estrutura de repetição com Ruby[AULA-3]
Estrutura de repetição com Ruby[AULA-3]
Ricardo Silva
 
Rest API's with Ruby on Rails
Rest API's with Ruby on RailsRest API's with Ruby on Rails
Rest API's with Ruby on RailsRicardo Silva
 
Introdução à programação em Ruby
Introdução à programação em RubyIntrodução à programação em Ruby
Introdução à programação em Ruby
Daniel Andrade
 
Tusco002
Tusco002Tusco002
Nicol.collaguazo 6 b
Nicol.collaguazo 6 bNicol.collaguazo 6 b
Nicol.collaguazo 6 b
Nicol Ojeda C
 
Biomechanics Coursework Group C5
Biomechanics Coursework Group C5Biomechanics Coursework Group C5
Biomechanics Coursework Group C5Joel Huskisson
 
Pebble Beach 2016
Pebble Beach 2016 Pebble Beach 2016
Pebble Beach 2016
INDatAAU
 
Psy 101 told by calvin and hobbs power point
Psy 101 told by calvin and hobbs power pointPsy 101 told by calvin and hobbs power point
Psy 101 told by calvin and hobbs power point
Casey Hines
 
Análisis morfológico nivel medio 1
Análisis morfológico nivel medio 1Análisis morfológico nivel medio 1
Análisis morfológico nivel medio 1
Marga Casaus
 
Microwave Imaging Of The Breast With Incorporated Structural Information Final
Microwave Imaging Of The Breast With Incorporated Structural Information FinalMicrowave Imaging Of The Breast With Incorporated Structural Information Final
Microwave Imaging Of The Breast With Incorporated Structural Information Final
Massachusetts General Hospital/Harvard Medical School
 
Taller de creatividad - Clase 7 - Escuela Da Vinci - Videojuegos
Taller de creatividad - Clase 7 - Escuela Da Vinci - VideojuegosTaller de creatividad - Clase 7 - Escuela Da Vinci - Videojuegos
Taller de creatividad - Clase 7 - Escuela Da Vinci - Videojuegos
José Francisco Hiebaum
 
10 Reasons Facebook Topic Data Will Change Your World
10 Reasons Facebook Topic Data Will Change Your World 10 Reasons Facebook Topic Data Will Change Your World
10 Reasons Facebook Topic Data Will Change Your World
DataSift
 
Corporate Voice | Weber Shandwick India Profile
Corporate Voice | Weber Shandwick India ProfileCorporate Voice | Weber Shandwick India Profile
Corporate Voice | Weber Shandwick India Profile
Ranjeet M. Vicharay
 
Microwave imaging
Microwave imagingMicrowave imaging
Microwave imaging
Piyumi Niwanthika Herath
 
Tere Vaden: Robin Hood Project
Tere Vaden: Robin Hood ProjectTere Vaden: Robin Hood Project
Tere Vaden: Robin Hood Project
VTT Technical Research Centre of Finland Ltd
 
Päivi Janka, TEM: Energia ja ilmastostrategia 2030
Päivi Janka, TEM: Energia ja ilmastostrategia 2030Päivi Janka, TEM: Energia ja ilmastostrategia 2030
Päivi Janka, TEM: Energia ja ilmastostrategia 2030
VTT Technical Research Centre of Finland Ltd
 
Diferencias entre análisis morfológico y sintáctico
Diferencias entre análisis morfológico y sintácticoDiferencias entre análisis morfológico y sintáctico
Diferencias entre análisis morfológico y sintáctico
CHRISTHOPHER PERNALETE
 

Destaque (20)

Logica de programação. introdução[AULA-1]
Logica de programação. introdução[AULA-1]Logica de programação. introdução[AULA-1]
Logica de programação. introdução[AULA-1]
 
Estrutura de repetição com Ruby[AULA-3]
Estrutura de repetição com Ruby[AULA-3]Estrutura de repetição com Ruby[AULA-3]
Estrutura de repetição com Ruby[AULA-3]
 
Rest API's with Ruby on Rails
Rest API's with Ruby on RailsRest API's with Ruby on Rails
Rest API's with Ruby on Rails
 
Introdução à programação em Ruby
Introdução à programação em RubyIntrodução à programação em Ruby
Introdução à programação em Ruby
 
Tusco002
Tusco002Tusco002
Tusco002
 
Nicol.collaguazo 6 b
Nicol.collaguazo 6 bNicol.collaguazo 6 b
Nicol.collaguazo 6 b
 
ecosystem-Africa- Hema Krishnan
ecosystem-Africa- Hema Krishnanecosystem-Africa- Hema Krishnan
ecosystem-Africa- Hema Krishnan
 
Biomechanics Coursework Group C5
Biomechanics Coursework Group C5Biomechanics Coursework Group C5
Biomechanics Coursework Group C5
 
SEM-4
SEM-4SEM-4
SEM-4
 
Pebble Beach 2016
Pebble Beach 2016 Pebble Beach 2016
Pebble Beach 2016
 
Psy 101 told by calvin and hobbs power point
Psy 101 told by calvin and hobbs power pointPsy 101 told by calvin and hobbs power point
Psy 101 told by calvin and hobbs power point
 
Análisis morfológico nivel medio 1
Análisis morfológico nivel medio 1Análisis morfológico nivel medio 1
Análisis morfológico nivel medio 1
 
Microwave Imaging Of The Breast With Incorporated Structural Information Final
Microwave Imaging Of The Breast With Incorporated Structural Information FinalMicrowave Imaging Of The Breast With Incorporated Structural Information Final
Microwave Imaging Of The Breast With Incorporated Structural Information Final
 
Taller de creatividad - Clase 7 - Escuela Da Vinci - Videojuegos
Taller de creatividad - Clase 7 - Escuela Da Vinci - VideojuegosTaller de creatividad - Clase 7 - Escuela Da Vinci - Videojuegos
Taller de creatividad - Clase 7 - Escuela Da Vinci - Videojuegos
 
10 Reasons Facebook Topic Data Will Change Your World
10 Reasons Facebook Topic Data Will Change Your World 10 Reasons Facebook Topic Data Will Change Your World
10 Reasons Facebook Topic Data Will Change Your World
 
Corporate Voice | Weber Shandwick India Profile
Corporate Voice | Weber Shandwick India ProfileCorporate Voice | Weber Shandwick India Profile
Corporate Voice | Weber Shandwick India Profile
 
Microwave imaging
Microwave imagingMicrowave imaging
Microwave imaging
 
Tere Vaden: Robin Hood Project
Tere Vaden: Robin Hood ProjectTere Vaden: Robin Hood Project
Tere Vaden: Robin Hood Project
 
Päivi Janka, TEM: Energia ja ilmastostrategia 2030
Päivi Janka, TEM: Energia ja ilmastostrategia 2030Päivi Janka, TEM: Energia ja ilmastostrategia 2030
Päivi Janka, TEM: Energia ja ilmastostrategia 2030
 
Diferencias entre análisis morfológico y sintáctico
Diferencias entre análisis morfológico y sintácticoDiferencias entre análisis morfológico y sintáctico
Diferencias entre análisis morfológico y sintáctico
 

Semelhante a Funções com Ruby[AULA 5]

Entendendo um pouco melhor o que é Ruby
Entendendo um pouco melhor o que é RubyEntendendo um pouco melhor o que é Ruby
Entendendo um pouco melhor o que é Ruby
codeland
 
A importância da programação funcional no dia a-dia
A importância da programação funcional no dia a-diaA importância da programação funcional no dia a-dia
A importância da programação funcional no dia a-dia
Gabriel Schade Cardoso
 
MSP Tech Days 2018 - Programação Funcional com F#
MSP Tech Days 2018 - Programação Funcional com F#MSP Tech Days 2018 - Programação Funcional com F#
MSP Tech Days 2018 - Programação Funcional com F#
Gustavo Bellini Bigardi
 
Qualidade no desenvolvimento de Sistemas por Anderson Augustinho (Celepar)
Qualidade no desenvolvimento de Sistemas por Anderson Augustinho (Celepar)Qualidade no desenvolvimento de Sistemas por Anderson Augustinho (Celepar)
Qualidade no desenvolvimento de Sistemas por Anderson Augustinho (Celepar)
Joao Galdino Mello de Souza
 
Introdução à programação funcional
Introdução à programação funcionalIntrodução à programação funcional
Introdução à programação funcional
Gabriel Schade Cardoso
 
Curso ruby on rails
Curso ruby on railsCurso ruby on rails
Curso ruby on rails
João Carreira
 
Objects calisthenics - Os 10 mandamentos do rei do código
Objects calisthenics - Os 10 mandamentos do rei do códigoObjects calisthenics - Os 10 mandamentos do rei do código
Objects calisthenics - Os 10 mandamentos do rei do código
BonoBee
 
TDC2018SP | Trilha Modern Web - Programacao funcional com Javascript - Seu co...
TDC2018SP | Trilha Modern Web - Programacao funcional com Javascript - Seu co...TDC2018SP | Trilha Modern Web - Programacao funcional com Javascript - Seu co...
TDC2018SP | Trilha Modern Web - Programacao funcional com Javascript - Seu co...
tdc-globalcode
 
Tutorial java script orientado à objeto e jquery
Tutorial java script orientado à objeto e jqueryTutorial java script orientado à objeto e jquery
Tutorial java script orientado à objeto e jquery
Luan Campos
 
Ruby & Rails
Ruby & RailsRuby & Rails
Ruby & Rails
Sergio Henrique
 
DDD linguagem ubiqua + codigo expressivo
DDD  linguagem ubiqua + codigo expressivoDDD  linguagem ubiqua + codigo expressivo
DDD linguagem ubiqua + codigo expressivo
Gabriel Schade Cardoso
 
Por que testar é importante e algumas boas práticas
Por que testar é importante e algumas boas práticasPor que testar é importante e algumas boas práticas
Por que testar é importante e algumas boas práticas
Lucas Caton
 
40 php orientado a objetos
40 php orientado a objetos40 php orientado a objetos
40 php orientado a objetosFrancisco Santos
 
php orientado_a_objetos
php orientado_a_objetosphp orientado_a_objetos
php orientado_a_objetos
Fer Nando
 
Apostila php orientado a objetos
Apostila php   orientado a objetosApostila php   orientado a objetos
Apostila php orientado a objetosFabiano Rodrigues
 
40 php orientado a objetos
40 php orientado a objetos40 php orientado a objetos
40 php orientado a objetos
Elisabete Pantoja
 
Comandos gerais do PHP
Comandos gerais do PHPComandos gerais do PHP
Comandos gerais do PHP
Paulo Dayvson
 
Shell script
Shell script Shell script
Shell script
SoftD Abreu
 
Estudos Technocorp
Estudos TechnocorpEstudos Technocorp
Estudos Technocorp
GiovaneGarcia3
 
Django Object factory
Django Object factoryDjango Object factory
Django Object factoryitalomaia
 

Semelhante a Funções com Ruby[AULA 5] (20)

Entendendo um pouco melhor o que é Ruby
Entendendo um pouco melhor o que é RubyEntendendo um pouco melhor o que é Ruby
Entendendo um pouco melhor o que é Ruby
 
A importância da programação funcional no dia a-dia
A importância da programação funcional no dia a-diaA importância da programação funcional no dia a-dia
A importância da programação funcional no dia a-dia
 
MSP Tech Days 2018 - Programação Funcional com F#
MSP Tech Days 2018 - Programação Funcional com F#MSP Tech Days 2018 - Programação Funcional com F#
MSP Tech Days 2018 - Programação Funcional com F#
 
Qualidade no desenvolvimento de Sistemas por Anderson Augustinho (Celepar)
Qualidade no desenvolvimento de Sistemas por Anderson Augustinho (Celepar)Qualidade no desenvolvimento de Sistemas por Anderson Augustinho (Celepar)
Qualidade no desenvolvimento de Sistemas por Anderson Augustinho (Celepar)
 
Introdução à programação funcional
Introdução à programação funcionalIntrodução à programação funcional
Introdução à programação funcional
 
Curso ruby on rails
Curso ruby on railsCurso ruby on rails
Curso ruby on rails
 
Objects calisthenics - Os 10 mandamentos do rei do código
Objects calisthenics - Os 10 mandamentos do rei do códigoObjects calisthenics - Os 10 mandamentos do rei do código
Objects calisthenics - Os 10 mandamentos do rei do código
 
TDC2018SP | Trilha Modern Web - Programacao funcional com Javascript - Seu co...
TDC2018SP | Trilha Modern Web - Programacao funcional com Javascript - Seu co...TDC2018SP | Trilha Modern Web - Programacao funcional com Javascript - Seu co...
TDC2018SP | Trilha Modern Web - Programacao funcional com Javascript - Seu co...
 
Tutorial java script orientado à objeto e jquery
Tutorial java script orientado à objeto e jqueryTutorial java script orientado à objeto e jquery
Tutorial java script orientado à objeto e jquery
 
Ruby & Rails
Ruby & RailsRuby & Rails
Ruby & Rails
 
DDD linguagem ubiqua + codigo expressivo
DDD  linguagem ubiqua + codigo expressivoDDD  linguagem ubiqua + codigo expressivo
DDD linguagem ubiqua + codigo expressivo
 
Por que testar é importante e algumas boas práticas
Por que testar é importante e algumas boas práticasPor que testar é importante e algumas boas práticas
Por que testar é importante e algumas boas práticas
 
40 php orientado a objetos
40 php orientado a objetos40 php orientado a objetos
40 php orientado a objetos
 
php orientado_a_objetos
php orientado_a_objetosphp orientado_a_objetos
php orientado_a_objetos
 
Apostila php orientado a objetos
Apostila php   orientado a objetosApostila php   orientado a objetos
Apostila php orientado a objetos
 
40 php orientado a objetos
40 php orientado a objetos40 php orientado a objetos
40 php orientado a objetos
 
Comandos gerais do PHP
Comandos gerais do PHPComandos gerais do PHP
Comandos gerais do PHP
 
Shell script
Shell script Shell script
Shell script
 
Estudos Technocorp
Estudos TechnocorpEstudos Technocorp
Estudos Technocorp
 
Django Object factory
Django Object factoryDjango Object factory
Django Object factory
 

Funções com Ruby[AULA 5]

  • 1. Lógica de Programação com Ruby Funções Ricardo Silva
  • 2. O que são e para que servem? - Até agora nós conseguimos construir alguns programas bacanas, porém sempre em um único arquivo. - E se nossos programas precisassem ganhar novas funcionalidades? Seria interessante continuar deixando tudo em um unico lugar? - Nosso sistemas virariam verdadeiros monstrinhos caso essa forma de programar que adotamos até aqui continuasse, concorda? - Para amenizar esse problema nós recorremos ao uso de funções!
  • 3. - Uma função ajuda a evitar duplicação de código, de maneira que um bloco de código pode ser guardado dentro dessa função e ser executado sempre que o nome da função for chamada(invocada)
  • 5. - No exemplo acima criamos uma função que sempre que invocada executará o bloco de código contido nela. Nesse caso seria uma verificação se o número 2 é par ou ímpar. - Esse exemplo é legal, mas é bastante limitado, pois ele sempre verifica o mesmo valor (número dois). E se a gente quisesse verificar outro número?
  • 6. Parâmetros - Para isso podemos utilizar parâmetros, que nada mais são que valores passados nas funções para que uma determinada lógica seja executada. - Vamos modificar um pouco o exemplo anterior para podermos utilizar parâmetros e deixar nossa função mais poderosa
  • 7.
  • 8. Retorno de função - Funções podem retornar valores para que possamos utilizá-los em outras partes do nosso programa
  • 9.
  • 11. Exercício - Escolha um dos exercícios realizados durante o curso e tente refazê-lo utilizando funções