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
NSArrayouNSDictionary), pois eles não podem conternil.
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.