Golang var和文字用法

Option 1

var employees []Employee
session.Employees = employees

Option 2

session.Employees = []Employee{}

What, if any, is the difference in the two Golang code options, with respect to session.Employees after execution?

Your first version assigns the value of the employees variable to session.Employees. It will be the zero value of the type []Employee, which is nil. You could simply write this as:

session.Employees = nil

Your second version assigns the value of a composite literal, which will be an empty (length=0, capacity=0) but non-nil slice.

See related questions:

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?

Correct way to initialize empty slice