Ferramentas

Kodebits Dia 71: Valor vs Referência | Kodeco

O Kodebits Day 71 explora a diferença entre valores e referências em Swift, apresentando um exemplo que demonstra como estruturas (struct) fazem cópias ao serem atribuídas, enquanto classes compartilham referências. O código exibe '3 9', mostrando o comportamento distinto de structs e classes quando seus valores são alterados.

Compartilhar
Kodebits Day 71: Value vs Reference | Kodeco

O que isso imprime?

struct Val { var n: Int }
class Ref {
  var n: Int
  init(_ n: Int) { self.n = n }
}
var v1 = Val(n: 3)
var v2 = v1
v2.n = 7
var r1 = Ref(5)
var r2 = r1
r2.n = 9
print("\(v1.n) \(r1.n)")

Tente no Swift Playground online →

[spoiler title="Solução"]

Resposta:

3 9

Explicação:

Structs fazem cópias na atribuição; classes compartilham referências.

[/spoiler]


Leitura Adicional

Fonte original

Conteúdo traduzido e adaptado pela redação do Notícias Mobile. Confira também a matéria na fonte original.

Leia a matéria completa