全局变量 _ 的含义是将 nil 转换为一个接口。

huangapple go评论82阅读模式
英文:

what's the meaning of global variable _ which convers nil to an interface

问题

我正在尝试理解全局变量_在下面代码中的作用,但最终我无法弄清楚其含义。

type variable_ interface {
	cin()
}

type imple struct {
}

func (i *imple) cin() {
	fmt.Println("cout")
}

var (
	_ = variable_((*imple)(nil))
)

这段代码定义了一个接口variable_和一个结构体impleimple实现了cin方法。然后,通过var关键字定义了一个全局变量_,并将variable_((*imple)(nil))赋值给它。这里的(*imple)(nil)是将nil转换为*imple类型的指针。

根据代码中的赋值操作,可以推断出_的作用是将imple类型的指针转换为variable_接口类型,并且不使用该接口。这种用法通常用于检查类型是否实现了某个接口,但不需要实际使用该接口。

希望对你有帮助!如果还有其他问题,请随时提问。

英文:

I am trying to understand the effect of global variable _ from graph's source code like the belowing code, but at last I can't figure out what's the meaning.

type variable_ interface {
	cin()
}

type imple struct {
}

func (i *imple) cin() {
	fmt.Println("cout")
}

var (
	_ = variable_((*imple)(nil))
)

答案1

得分: 1

_ 在 GO 语言中通常表示忽略。_ = variable_((*imple)(nil)) 的目的是在编译时检查 *impl 是否实现了 variable_

英文:

_ always means ignore in GO. the purpose of _ = variable_((*imple)(nil)) is to check at compile time if *impl implements variable_

huangapple
  • 本文由 发表于 2022年8月18日 16:25:07
  • 转载请务必保留本文链接:https://go.coder-hub.com/73399735.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定