Sobre o debate de tipos não anuláveis
Eu continuo ouvindo as pessoas falarem sobre como os tipos de referência não anuláveis resolveriam tantos bugs e tornaram a programação muito mais fácil. Até o criador de null chama isso derro de bilhões de dólares e Spec # introduziu tipos não anuláveis para combater esse problem
EDITAR Ignore meu comentário sobre Spec #. Eu não entendi como isso funciona.
EDIT 2: Eu devo estar falando com as pessoas erradas, eu realmente esperava que alguém discutisse com: -)
Então, eu acho que, sendo minoria, estou errado, mas não consigo entender por que esse debate tem algum mérito. Eu vejo nulo como uma ferramenta de busca de erros. Considere o seguinte
class Class { ... }
void main() {
Class c = nullptr;
// ... ... ... code ...
for(int i = 0; i < c.count; ++i) { ... }
}
BAM! Violação de acesso. Alguém esqueceu de inicializarc
.
Agora considere isso:
class Class { ... }
void main() {
Class c = new Class(); // set to new Class() by default
// ... ... ... code ...
for(int i = 0; i < c.count; ++i) { ... }
}
Whoops. O loop é ignorado silenciosamente. Pode demorar um pouco para rastrear o problema.
Se sua turma estiver vazia, o código falhará de qualquer maneira. Por que o sistema não informa a você (ainda que de maneira grosseira), em vez de ter que descobrir você mesm