相关疑难解决方法(0)

确保类型在Go中的编译时实现接口

如何确保类型在编译时实现接口?执行此操作的典型方法是无法从该类型分配支持接口,但是我有几种仅动态转换的类型.在运行时,这会生成非常粗暴的错误消息,而没有为编译时错误提供更好的诊断.在运行时找到我希望支持接口的类型也很不方便,事实上并非如此.

types compiler-errors interface go

15
推荐指数
3
解决办法
4270
查看次数

Go - 如何明确声明结构正在实现接口?

由于Go非常重视接口,我想知道如何在一些方法缺失的情况下明确说明一个结构是为了清晰和错误检查而实现一个接口?到目前为止,我已经看到了两种方法,我想知道哪种方法是正确的并且符合Go规范.

方法1 - 匿名字段

type Foo interface{
    Foo()
}

type Bar struct {
    Foo
}
func (b *Bar)Foo() {
}
Run Code Online (Sandbox Code Playgroud)

方法2 - 显式转换

type Foo interface{
    Foo()
}

type Bar struct {
}
func (b *Bar)Foo() {
}
var _ Foo = (*Bar)(nil)
Run Code Online (Sandbox Code Playgroud)

这些方法是否正确,还是有其他方法可以做这样的事情?

standards inheritance interface go

5
推荐指数
2
解决办法
856
查看次数

标签 统计

go ×2

interface ×2

compiler-errors ×1

inheritance ×1

standards ×1

types ×1