var ans [][]int
ans = append(ans, append([]int(nil), nums...))(正确写法)
需要注意的是,为了避免对原切片造成影响,代码在将当前排列追加到结果数组 ans 时,使用了 append(ans, append([]int(nil), nums…)) 的方式创建了一个新的切片,保证了 nums切片和新切片不共享内存。
ans = append(ans, nums)(错误写法)
这个时候向ans添加nums会和原来的nums数组共享内存,当nums数据改变时,ans里的数据也会改变,这是一个坑。