tgoop.com/go_interview_lib/542
Last Update:
💬 В чем разница пустых и нулевых срезов в Go?
• Нулевой срез — это срез, который имеет значение nil
, и он не указывает на какой-либо выделенный блок памяти. Его длина и ёмкость равны нулю, а сам срез nil
.
• Пустой срез — это срез, который ссылается на существующий, но пустой блок памяти (например, s := make([]int, 0)
или s := []int{}
). Его длина и ёмкость равны нулю, но сам срез не является nil
.
📌 Практическая разница:
• nil-срез полезен для того, чтобы указать отсутствие данных, и в некоторых ситуациях может потребоваться, чтобы срез был именно nil
.
• Пустой срез гарантирует наличие выделенной памяти, даже если в нем нет элементов, и его можно безопасно использовать для операций без дополнительной проверки на nil
.
BY Библиотека Go для собеса | вопросы с собеседований
Share with your friend now:
tgoop.com/go_interview_lib/542