4

在干净的代码(第 3 章,每个函数的一个抽象级别)中有一些关于降级规则(高层函数在顶层,底层函数在下一层)。
由于coffeescript中没有函数声明,当我使用coffeescript时应该怎么做。

例子:

 seeAMovie = ()->
     BuyTheTicket()
     watch()

 BuyTheTicket = ()->
     //some thing

 watch = () ->
     //some thing

我想这样做。

4

1 回答 1

9

CoffeeScript 并不真正影响这条规则。该规则与声明没有任何关系,但即使有,CoffeeScript也确实有声明。正如@muistooshort 所说,这是一个 CoffeeScript 函数声明:

functionName = (arg1, arg2) -> 
  functionBodyLine1
  functionBodyLine2

如果没有参数,这些括号在声明中是可选的。下面是 CoffeeScript 中的 Step-Down Rule 示例:

highLevel = ->
  doSomethingAlmostAsHighLevel1()
  doSomethingAlmostAsHighLevel2()

doSomethingAlmostAsHighLevel1 = ->
  doSomethingALittleLowerLevel1()

...

请注意您的编辑:这很好,并且遵循 Step-down 规则。你的样品有什么问题?

书中没有提到,但鲍勃叔叔向我澄清说,当两个函数 - 在同一抽象级别 - 使用相同的低级函数时,它们应该像这样排序:

highLevel1 = -> lowLevel()
highLevel2 = -> lowLevel()
lowLevel = -> ...
于 2013-08-16T07:02:13.233 回答