Sobes.tech
Middle

Quais são as diferenças entre as semânticas?

sobes.tech IA

Resposta da IA

Tipos de Valor:

  • São copiados ao atribuir ou passar para uma função.
  • Cada alteração cria uma nova cópia.
  • São armazenados na pilha (na maioria dos casos).
  • Exemplos: struct, enum, tipos básicos (Int, Double, Bool, String).

Tipos de Referência:

  • São passados por referência.
  • Várias variáveis podem referir-se à mesma instância.
  • A alteração através de uma variável afeta todas as referências a essa instância.
  • São armazenados no heap.
  • Exemplos: class, func.

Comparação:

Característica Tipos de Valor Tipos de Referência
Cópia Por valor Por referência
Alteração Cria uma cópia nova Afeta todas as referências
Armazenamento Pilha (normalmente) Heap
Desempenho Geralmente mais rápido (sem custos adicionais de heap e ARC) Mais lento (devido ao heap e ARC)
Segurança de thread Por padrão, seguro para threads (cada thread trabalha com sua própria cópia) Requer sincronização ao acessar de diferentes threads