duck typing

Python 

def download(retriever):

  return retriever.get("www.baidu.com");

C++

template <class R>

string download(const R& retriever){

  return retriever.get("www.baidu.com");

}

 java和python中,传入的参数什么类型都可以,只需要实现get方法

Java

<R extends Retriever>

String download(R r){

  return r.get("www.baidu.com")

}

传入的参数必须实现Retriever接口

非duck typing

 ----------------------------------------------------------------------------------------------------------------------

GO

type Retriever interface {

  Get(url string) string

}

func download(r Retriever) string{

  return r.Get("www.baidu.com")

}

func main(){

  var r Retriever

  fmt.Println(download(r))

}

duck typing

上一篇:Could not install Gradle distribution from ...:无法从“.../Gradle-5.4.1-all.zip”安装Gradle发行版的错误怎么解决?


下一篇:网络扫描工具Nmap常用命令