CoffeeScript编程:类型、理解式与流畅接口
1. 无类型与鸭子类型
在编程中,类型系统是一个重要的概念。但在CoffeeScript里,它是动态且弱类型的。比如 typeof null 的结果是 null ,而且在CoffeeScript里,几乎所有东西都是对象,使用 typeof 来判断类型往往没什么用。
1.1 鸭子类型的引入
假设我们要组织一场鸭子赛跑,定义了 Duck 类和 DuckRace 类:
class Duck
walk: ->
quack: (distance) ->
daffy = new Duck
daffy.walk()
donald = new Duck
donald.quack()
daffy.quack()
class DuckRace
constructor: (@ducks) ->
go: ->
duck.walk() for duck in @ducks
然而,这个 DuckRace 并不能保证参赛的都是鸭子,比如一只野兔也可能参赛:
class Hare
run: ->
walk: -> run()
hare = new Hare
race = new D
超级会员免费看
订阅专栏 解锁全文
7097

被折叠的 条评论
为什么被折叠?



