相关疑难解决方法(0)

关键字var后面的下划线和接口名称是什么意思?

来自http://golang.org/src/pkg/database/sql/driver/types.go :

type ValueConverter interface {
    // ConvertValue converts a value to a driver Value.
    ConvertValue(v interface{}) (Value, error)
}

var Bool boolType

type boolType struct{}

var _ ValueConverter = boolType{} // line 58

func (boolType) String() string { return "Bool" }

func (boolType) ConvertValue(src interface{}) (Value, error) {....}
Run Code Online (Sandbox Code Playgroud)

我知道ValueConverter是一个接口名称.第58行似乎声明boolType实现接口ValueConverter,但这是必要的吗?我删除了第58行,代码运行良好.

syntax interface go underscores

66
推荐指数
2
解决办法
1万
查看次数

无法理解一段golang代码

package main

type Writeable interface {
    OnWrite() interface{}
}

type Result struct {
    Message string
}

func (r *Result) OnWrite() interface{} {
    return r.Message
}

// what does this line mean? what is the purpose?
var _ Writeable = (*Result)(nil)


func main() {

}
Run Code Online (Sandbox Code Playgroud)

代码段中的注释表达了我的困惑.据我所知,带注释的行通知编译器检查结构是否已实现接口,但我不太确定.有人可以帮助解释目的吗?

methods interface go

1
推荐指数
1
解决办法
57
查看次数

在LHS中的下划线声明中的下划线

这段代码片段做了什么?

var i int
_ = i
Run Code Online (Sandbox Code Playgroud)

我理解使用"_"作为空白标识符,但上面的第二行是什么实现的?

以下是来自etcd GitHub存储库的示例:etcd

go

1
推荐指数
1
解决办法
80
查看次数

标签 统计

go ×3

interface ×2

methods ×1

syntax ×1

underscores ×1