3

动态类型、鸭子类型、多态性和参数多态性有什么区别?

我问是因为 Ruby 有这些(根据维基百科),尽管我更感兴趣。

4

1 回答 1

2

动态类型意味着您不需要定义变量的类型,语言解释器将尝试猜测该变量的类型(数字、布尔值、字符串等)。

鸭子类型意味着我们对对象是什么类型不感兴趣,相反我们更关心对象的功能方面:如果一个对象返回了我们感兴趣的那些方法,那么这意味着该对象满足我们的要求。因此,有一句众所周知的短语:“如果一只鸟像鸭子一样走路,像鸭子一样游泳,像鸭子一样嘎嘎叫,那只鸟就是鸭子”

来自Wikipedia参数多态性是一种使语言更具表现力的方法,同时仍保持完全的静态类型安全。使用参数多态性,可以通用地编写函数或数据类型,以便它可以相同地处理值而不依赖于它们的类型。

于 2013-01-31T13:24:25.227 回答