Can anyone explain what is happening in the following GO code?

The following code outputs false. The test function returns an interface that I believe should be nil. But in the print statement, the nil check returns false. Can anyone explain why is that?

package main

import (
    "fmt"
)

func test() interface{} {
    var i *int
    return i
}

func main() {
    x := test()
    fmt.Println(x == nil)
}