因为Shadowsocks-dotCloud和Shadowsocks-nodejs的关系接触到CoffeeScript,后来Google了一下,结合CoffeeScript自己的说明。嗯,CoffeeScript就是纯粹的JavaScript,提取JavaScript好的部分。今天稍微体验了一下,CoffeeScript的感觉很像Ruby、Go这种「新型」脚本语言。
本地环境的搭建
首先必须安装好nodejs和npm,然后命令行输入
sudo npm install -g coffee-script
好了……本地环境搭建完成了……至于IDE么……我没找到什么好用的IDE,常用的各类编辑器都支持CoffeeScript语法高亮。Mac用TextMate,Linux/BSD里KDE下用Kate,GNOME下可以用GEdit等等。
语法简要
我的感觉是,嗯,一切都是对象,所以所有的「赋值」操作都是通过等号完成。如:
words = "Hello World!"
说到等号,判断语句中的相等和C/C++一样用的两个等号来表示,如:
equ = true if a == b
对于我这个了解最多的语言是C++的人来说,CoffeeScript的简洁确实有很大的吸引力!然后讲一下函数的定义方式,函数定义也是通过等号,等号后面接上的括号里面为参数(多个参数用半角逗号,隔开),然后这个「右箭头」符号->后表示函数内容,自动返回的值是函数中的最后一行,也可以手动使用return返回。下面这个栗子里面返回的就是x*2而不是x*x,x=x*x也可以用x*=x表示(和C/C++的运算符一样!)
fc = (x) -> x = x * x x * 2
对于传统的对象的定义,举个栗子吧,就用官网上的栗子好了。
math = root: Math.sqrt square: square cube: (x) -> x * square x
在对象定义中,成员的定义/赋值不能用等号了而要用冒号(注意符号都是半角符号,我的WP会把半角符号自动转换成全角,自己复制粘贴的话要注意一下)。调用函数的时候可以加括号把参数括起来也可以不用括号(官网的栗子就没有括号),不用括号的时候,多个参数之间用半角逗号隔开。
对象成员的调用和C++一样,使用半角句号(就是小圆点”.”)来调用,上面这个栗子里面的cube函数就是通过math.cube来调用!
最简单数组的创立如下
list = [1, 2, 3, 5, 7, 9]
想知道对象rvar存在与否?直接if rvar?就可以了(别忘了后面的那个半角问号)。
和ruby相像,调用数组里面的各个元素用for in完成。
cubes = (math.cube num for num in list)
嗯,其实初阶段学习的话,多看看CoffeeScript官网就会了~至于实际应用么……那是另外一回事XD