选项1
var employees []Employee
session.Employees = employees
选项2
session.Employees = []Employee{}
在执行后,两个golang代码选项相对于session.Employees有什么区别?
答案 0 :(得分:4)
您的第一个版本将employees
变量的值分配给session.Employees
。它将是类型[]Employee
的{{3}},即nil
。您可以简单地这样写:
session.Employees = nil
您的第二个版本分配了zero value的值,该值将为空(长度= 0,容量= 0),但不是nil
切片。
查看相关问题:
nil slices vs non-nil slices vs empty slices in Go language
What is the point of having nil slice and empty slice in golang?