来自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行,代码运行良好.
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)
代码段中的注释表达了我的困惑.据我所知,带注释的行通知编译器检查结构是否已实现接口,但我不太确定.有人可以帮助解释目的吗?
这段代码片段做了什么?
var i int
_ = i
Run Code Online (Sandbox Code Playgroud)
我理解使用"_"作为空白标识符,但上面的第二行是什么实现的?
以下是来自etcd GitHub存储库的示例:etcd