Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Sobre o except

Não entendi pq o instrutor disse que ao escreverimport Kernel, except: [inspect: 1] estaríamos importando tudo da função Kernel exceto a função inspect, sendo que a função inspect está sim sendo utilizada mais abaixo no código... não fez sentido pra mim, alguém poderia explicar?

Seria pq tanto no módulo Kernel quanto no módulo IO existiria uma função inspect? Então queremos usar a função inspect do IO e para não confundir com a função inspect do Kernel, faríamos o except?

defmodule MeuModulo do
    import IO , only: [puts: 1]
    import Kernel, except: [inspect: 1]
    def ola_mundo do
        inspect("Olá mundo!")

    end

    def inspect(parametro) do
        puts("Começando a inspeção")
        puts(parametro)
        puts("Terminando a inspeção")
    end
end
2 respostas
solução!

Oi, Anne, como vai?

Excelente dúvida!

Realmente a função inspect existe nos módulos Kernel e IO, no entanto, a função inspect definida no código não pertence a nenhum módulo, ela é apenas uma função criada pelo próprio instrutor. Por conta disso, para não causar conflito entre funções que possuem o mesmo nome e a mesma quantidade de parâmetros, o Vinicius importou apenas a função puts do módulo IO e todas as funções importantes do módulo Kernel menos a função inspect que causaria conflito e erro no código.

Espero ter ajudado.

Caso tenha quaisquer comentários ou dúvidas a respeito de alguma aula ou desafio, pode postar aqui no fórum que vamos te responder!

Abraços e bons estudos!

Show Murillo, obrigada!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software