فرق null با nil چیه؟
شاید شنیده باشید که nil توی golang معادل null توی بقیه زبون هاست. ولی این تصور اشتباهیه.
توی بسیاری از زبون های برنامه نویسی، null به معنی (هیچی) هست. ولی توی golang ما مفهومی به اسم (هیچی) نداریم، بلکه هر تایپی در صورتی که مقدار دهی نشه، بهش zero value خاص خودش تعلق میگیره. مثلا برای int, زیرو ولیو 0 هست و برای string ها zero value یه متن خالی("") هست. Zero value مربوط به referenced type ها هم nill هست، referenced type ها شامل
Pointer
Slice
Map
Function
Channel
Interface
هستن.