nil - это допустимый срез длины 0. Это означает, что,
-
Вы не должны явно возвращать срез нулевой длины. Вместо этого верните nil.
Менее удачный пример:
if x == "" { return []int{} }
Более удачный пример:
if x == "" { return nil }
-
Чтобы проверить, пуст ли срез, всегда используйте len(s) == 0. Не проверяйте на nil.
Менее удачный пример:
func isEmpty(s []string) bool { return s == nil }
Более удачный пример:
func isEmpty(s []string) bool { return len(s) == 0 }
-
Нулевое значение (срез, объявленный с помощью var) можно сразу использовать без make().
Менее удачный пример:
nums := []int{} // или, nums := make([]int) if add1 { nums = append(nums, 1) } if add2 { nums = append(nums, 2) }
Более удачный пример:
var nums []int if add1 { nums = append(nums, 1) } if add2 { nums = append(nums, 2) }
Помните, что, хотя это действительный срез, нулевой срез (nil slice) не эквивалентен выделенному срезу длины 0 - первый равен nil, а второй нет - и оба могут обрабатываться по-разному в разных ситуациях (например, при сериализации).
Читайте также:
- Go style guides: объявления локальных переменных
- Go style guides: используйте имена полей для инициализации структур
- Go style guides: встраивание в структуры
Комментариев нет:
Отправить комментарий