Ruby On Kutbie — Episode 1
免责声明:我写本系列文章纯粹为了个人学习,如果有任何误解请与我联系。另,本系列文章是我看《Programming Ruby》这本书后的读书笔记,所以建议大家看这本书。
Episode 1 — 初探Ruby
“Ruby is a genuine object-oriented language. ”第一句话就让人放心。这句话告诉我们,我们可以继续用类似于something.somemethod()的方法来写程序。恩,不错。在我学习Ruby的过程中,第一感觉就是愉快。先来看一个Ruby程序:
def sayGoodnight(name)result = "Goodnight, " + namereturn resultend
# Time for bed...puts sayGoodnight("John-Boy")puts sayGoodnight("Mary-Ellen")
很容易看懂:Ruby中用def…end来定义方法。puts是一个内置函数,向标准输出上以一个新行输出一个字符串。puts不用加括号吗?这就是第一个Ruby的小特性:方法调用再不引起歧义的情况下,可以不用括号来传参数。(当然在一般情况下,建议用括号,除非太简单的语句)
光看这个函数似乎不能太体现Ruby带来的愉快,那来修改一下:
def sayGoodnight(name)result = "Goodnight, #{name}"return resultend
有些意思了,没有了字符串拼接?这就要说说Ruby构造String类型对象的两种方式了,一种是用单引号,一种用双引号。使用单引号的时候,引号中有什么内容,构造的String中就会有什么内容;而在使用双引号时,Ruby会做一些额外的事情,一是转意,就是把’\n’变成相应的2进制代码等等,二就是上面这个函数所用的,计算内嵌的表达式(内嵌的表达式当然就是:#{expression}这种结构了)。所以上面这个函数与之前的那个是等价的。再来看一个:
def sayGoodnight(name)"Goodnight, #{name}"end
没有了return。在Ruby中,一个方法的返回值就是这个方法最后一条语句的执行结果,所以对于这个函数,return是没有必要的。现在,可以写一个标准的Ruby的hello
world了吧:
def helloworldputs 'Hello Ruby World!'end








