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

Como converter o valor de uma variável

Boa noite galera, eu estava vendo os vídeos e com base tentei compilar o seguinte código :

var full:Double = 0.0;
var values:Array<Double> = [1.0,2.0];

for v in values
{
    full += v;
}

println(full/values.count);

O problema que não executa a divisão, devido ao values.count ser inteiro se não me engano. Gostaria de saber como faço isso.

5 respostas

Oi Igor,

O problema é que para o Swift conseguir fazer a operação, os dois operandos precisam ser do mesmo tipo.

Para seu código funcionar, você precisa fazer um cast do values.count para Double:

println(full / values.count as Double)

Abraço!

Ei Joviane,

Eu pensei em algo do tipo, não entendo muito de cast mas tinha alguma noção, o problema que fazendo isso não dá certo, o erro que aparece é o seguinte :

println(full / values.count as Double)

Erro : Missing argument for parameter # in call

Segue o código todo :

var full:Double = 0.0; var values:Array = [1.0,2.0];

for v in values {

full += v; }

println(full); println(values.count); println(full / values.count as Double);

Ali no erro, o correto seria :

Missing argument for parameter #2 in call

Consegui, usei o seguinte método, gostaria de saber se está correto :

var full:Double = 0.0; var values:Array = [1.0,2.0,3.0];

for v in values {

full += v;

}

var valor = Double(values.count);

println(full);

println(valor);

println(full/valor);

solução!

Olá Igor,

Primeira solução que pensei e iria sugerir era a que adotou, utilizando o método init da classe Double, "Double(values.count)".

Ao ver que já a utilizou, pensei em otimizar seu código, com pouca diferença: sem declarar outra variável.

Sua última linha ficaria:

println(full/Double(values.count))

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