1 回答
TA贡献1831条经验 获得超9个赞
InRecovery似乎被声明为 的方法*cubicSender,而不是函数。您不能仅通过指定声明方法的包来调用方法,您需要声明该方法的类型的实例,然后可以通过使用实例变量的名称限定该方法来调用该方法。
请注意,如果您想在声明该方法的包外部使用该方法InRecovery,则需要导出定义该方法的类型(即cubicSender),或者需要以某种方式提供对未导出的实例的访问类型,例如通过导出的变量或函数。
例如在congestion/file1.go:
package congestion
type cubicSender struct {
// ...
}
// exported function to provide access to the unexported type
func NewCubicSender() *cubicSender {
return &cubicSender{
// ...
}
}
func (c *cubicSender) InRecovery() bool {
return false
}
并在quic/file2.go:
package quic
import "path/to/congestion"
func foobar() {
c := congestion.NewCubicSender() // initialize an instance of cubicSender
if c.InRecovery() { // call InRecovery on the instance
// ...
}
}
- 1 回答
- 0 关注
- 104 浏览
添加回答
举报