Sobes.tech
Junior — Middle

Qual é a diferença entre Nil e Null no contexto da programação?

sobes.tech IA

Resposta da IA

No contexto da programação, especialmente em iOS e Objective-C, Nil e Null têm significados diferentes:

  • Nil: é um ponteiro para um objeto que é igual a zero (ponteiro nulo) para objetos Objective-C. É usado para indicar a ausência de um objeto (por exemplo, NSObject *obj = Nil;).

  • NULL: é um macro que indica um ponteiro nulo para ponteiros normais a estruturas C ou tipos primitivos (por exemplo, int *ptr = NULL;).

  • NSNull: é um objeto especial no Foundation, usado para representar um valor null em coleções (por exemplo, em NSArray ou NSDictionary), pois eles não podem conter nil.

Exemplo:

NSObject *obj = Nil;       // objeto ausente
int *ptr = NULL;           // endereço ausente
NSArray *array = @[[NSNull null]]; // objeto que representa null dentro de um array

Assim, Nil é um ponteiro nulo para objetos Objective-C, NULL para ponteiros normais, e NSNull é um objeto marcador para representar null em coleções.