e2

command
v0.0.0-...-280f8e7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 19, 2024 License: CC0-1.0 Imports: 1 Imported by: 0

README

interface

A interface básicamente é como se fosse um contrato as para funções que o recebem.

Para implementar uma interface primeiro precisamos declarar-la:


type Ser interface {
    Respirar() bool
}

Criando nossos tipos:


type (
    Humano struct {}
    Cachorro struct {}
    Pedra struct {}
)

func (h Humano) Respirar() bool {
    return false
}

func (c Cachorro) Respirar() bool {
    return true
}

Agora criaremos uma função onde somente os Seres vivos podem recebidos:


func VerificandoSeEstaVivo(s Ser) {
    if s.Respirar() {
        fmt.Println("Está vivo.")
    } else {
        fmt.Println("Não está vivo.")
    }
}

Agora vamos verificar nossos tipos:


humano := Humano{}
cachorro := Cachorro{}
pedra := Pedra{}

VerificandoSeEstaVivo(humano) // Não está vivo.
VerificandoSeEstaVivo(cachorro) // Está vivo.
VerificandoSeEstaVivo(pedra) // erro: O tipo Pedra não é um Ser

Playground

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL