3
respostas

Função dup()

Pessoal, posso estar enganado, mas eu terminei a primeira parte do curso, e não vejo o momento da explicação que o Guilherme utiliza a função dup no heroi.

def calcula_nova_posicao heroi, direcao
    heroi = heroi.dup
    case direcao
        when "W"
            heroi[0] -= 1
        when "S"
            heroi[0] += 1
        when "A"
            heroi[1] -= 1
        when "D"
            heroi[1] += 1
    end
    heroi
end

Alguém pode me explicar o que o dup faz? Ou se eu estiver enganado, me falar o trecho do vídeo que ele explica. Pode ter sido um momento de desatenção. Obrigado!

3 respostas

opa, ele cria um nova instancia baseada na original. No caso ta criando um outro objeto do tipo heroi.

e se eu fizesse:

def calcula_nova_posicao heroi, direcao
    heroi_nova_posicao = heroi

......resto do codigo.........

seria outra solução?

aí você só estaria criando outra variável apontando para o mesmo objeto.

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