在干净的代码(第 3 章,每个函数的一个抽象级别)中有一些关于降级规则(高层函数在顶层,底层函数在下一层)。
由于coffeescript中没有函数声明,当我使用coffeescript时应该怎么做。
例子:
seeAMovie = ()->
BuyTheTicket()
watch()
BuyTheTicket = ()->
//some thing
watch = () ->
//some thing
我想这样做。
在干净的代码(第 3 章,每个函数的一个抽象级别)中有一些关于降级规则(高层函数在顶层,底层函数在下一层)。
由于coffeescript中没有函数声明,当我使用coffeescript时应该怎么做。
例子:
seeAMovie = ()->
BuyTheTicket()
watch()
BuyTheTicket = ()->
//some thing
watch = () ->
//some thing
我想这样做。
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 = -> ...