here are two different definations in go, but what's the difference?
I have tried the following:

```
func main() {
    var test1 []int
    test2 := []int{}

    if test1 == nil {
        fmt.Println(1)
    }
    if test2 == nil {
        fmt.Println(2)
    }
    fmt.Println("test1:", test1)
    fmt.Println("test2:", test2)
}

```

and this is the output:

```
1
test1: []
test2: []

```

but why the test1 is nil but the other is not?