我有一段代码需要一个没有其类型的变量声明。稍后会为该变量分配一个值,这就是一个接口。伪代码看起来与此非常相似:
var client
if some_condn {
client = ssh.Dial(params)
} else {
client = my_own_ssh_dial(my_params)
}
session,_ := client.NewSession()
Run Code Online (Sandbox Code Playgroud)
问题是 GO 不允许无类型的变量声明。有什么方法可以使用像通用对象(来自Java)之类的东西来默认客户端?
TIA
一个变量必须有一个类型才能使用它。最接近无类型变量的是 type interface{},它是一种接口类型,但没有可调用的方法。
由于这里的目标是调用该NewSession方法,所以使用包含该方法的接口声明变量。
var client interface {
NewSession() (*ssh.Session, error)
}
if some_condn {
client = ssh.Dial(params)
} else {
client = my_own_ssh_dial(my_params)
}
session, _ := client.NewSession()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
59 次 |
| 最近记录: |