Goの型付きnilで死んだ話

これはどういう結果になるか、分かりますか?

package main

import (
    "fmt"
    "bytes"
)

func Buffer() *bytes.Buffer {
    return nil
}

func main() {
    b := Buffer()
    fmt.Printf("%T %v", b, b)
}

こうなります。

f:id:reteria:20190822234013p:plain

型無しnilになって欲しい気持ちだった。 結局、戻り値の型をio.Readerにしました。