Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> Author here. No, I didn't misunderstand it. Interface variables have two types of nil. Untyped, which does compare to nil, and typed, which does not.

There aren't two types of nil. Would you call an empty bucket and an empty cup "two types of empty"?

There is one nil, which means different things in different contexts. You're muddying the waters and making something which is actually quite straightforward (an interface can contain other things, including things that are themselves empty) seem complicated.

> I've seen this in real code. Someone compares a variable to nil, it's not, and then they call a method (receiver), and it crashes with nil dereference.

Sure, I've seen pointer-to-pointer dereferences fail for the same reason in C. It's not particularly different.



Consider applying for YC's Fall 2026 batch! Applications are open till July 27.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: