CoffeeScript学习第一天

因为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