Golang var和文字用法

时间:2018-12-05 12:09:25

标签: go slice var literals

选项1

var employees []Employee
session.Employees = employees

选项2

session.Employees = []Employee{}

在执行后,两个golang代码选项相对于session.Employees有什么区别?

1 个答案:

答案 0 :(得分:4)

您的第一个版本将employees变量的值分配给session.Employees。它将是类型[]Employee的{​​{3}},即nil。您可以简单地这样写:

session.Employees = nil

您的第二个版本分配了zero value的值,该值将为空(长度= 0,容量= 0),但不是nil切片。

查看相关问题:

composite literal

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?