在博客园看到有人在介绍CoffeeScript,以前仿佛看过类似的东西。所以去官方看了一下,结果发现现在的代码是不是都在追求所谓的语义化?
比如你看这一段 :
mood = greatlyImproved if singing if happy and knowsIt clapsHands() chaChaCha() else showIt() date = if friday then sue else jill options or= defaults
然后所谓生成后的代码就成了这样:
var date, mood; if (singing) mood = greatlyImproved; if (happy && knowsIt) { clapsHands(); chaChaCha(); } else { showIt(); } date = friday ? sue : jill; options || (options = defaults);
看到上面的这段生成后的代码,再对比一下原来的写法,是不是觉得很有意思?
再来一段长的:
grade = (student) -> if student.excellentWork "A+" else if student.okayStuff if student.triedHard then "B" else "B-" else "C" eldest = if 24 > 21 then "Liz" else "Ike"
输出之后就是:
var eldest, grade; grade = function(student) { if (student.excellentWork) { return "A+"; } else if (student.okayStuff) { if (student.triedHard) { return "B"; } else { return "B-"; } } else { return "C"; } }; eldest = 24 > 21 ? "Liz" : "Ike";
越来越发现,原来写伪代码也可以转换成代码。而且看上去也不错,有点象zen coding了。现在很多IDE都支持zen coding
不知道这次这个coffeescript什么时候会被支持
官网:http://jashkenas.github.com/coffee-script/
但是对于用户来说,有一点压力,因为它还是会有一些学习成本。