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

[Dúvida] Instanciar uma Struct Explicitamente

Fiquei com uma dúvida quando eu instancio explicitamente uma Struct. Como eu atribuo um valor à um atributo não inicializado na Struct, já que uma struct não possui o método init()? Em uma classe eu entendi.... Posso usar o '.init(nome: "Paulo)'. Mas e em uma struct? Simplesmente fazer contaCorrentePaulo.nome = "Paulo" não funciona, correto? Veja no Código abaixo:

struct ContaCorrente {
    
    var saldo = 0.0
    var nome: String
    
    mutating func sacar (_ valor: Double){
        saldo -= valor
    }
    
    mutating func depositar (_ valor: Double){
        saldo += valor
    }
}

let contaCorrentePaulo: ContaCorrente
contaCorrentePaulo.nome = "Paulo"
//a linha acima não funciona

Como eu inicializo o atributo nome neste caso?

2 respostas
solução!

Opa Bruno, tudo bem?

Em Swift, uma struct é um tipo de valor, e os seus atributos não possuem um inicializador automático como em uma classe. Para atribuir um valor ao atributo nome da sua struct ContaCorrente, você precisa criar uma instância da struct com todos os seus atributos inicializados. Aqui está como você pode fazer isso:

var contaCorrente1 = ContaCorrente(saldo: 0.0, nome: "Umnome")

Neste exemplo, você está criando uma instância da struct ContaCorrente chamada contaCorrente1 e está inicializando os atributos saldo e nome com os valores desejados.

Portanto, em uma struct, você deve fornecer todos os valores necessários ao criar uma instância, pois não há um inicializador padrão. Depois de criar a instância, você pode acessar e modificar os atributos normalmente, como você faria com qualquer outra variável:

contaCorrente1.saldo = 1000.0

Desta forma, você inicializa os atributos da struct ao criar a instância e, em seguida, pode trabalhar com eles como qualquer outra variável.

Qualquer dúvida, estarei à disposição :)

Excelente expliação Matheus! Entendido. Muito Obrigado!