猿问

返回可选接口值的惯用方式是什么?

想象一下我有一些类型和一个接口:


type Foo struct {}


type Bar struct {}


type Stuff interface {

  IsStuff()

}


func (_ Foo) IsStuff() {}

func (_ Bar) IsStuff() {}

现在想象一下我有一个可能返回Stuff或什么都不返回的函数。


func FindStuff() ??? {

 // ...

}

如果返回类型是普通结构,我可以只返回一个指向该结构的指针并nil在函数内部返回。但是在 Go 中似乎不赞成使用指向接口的指针(如果接口为 nil 也很棘手)。


那么如何定义FindStuff呢?



阿晨1998
浏览 68回答 1
1回答

HUX布斯

只需返回接口,它允许您返回nil:func FindStuff() Stuff {     return nil     }工作示例
随时随地看视频慕课网APP

相关分类

Go
我要回答