对于一种新的编程语言的学习,第一个程序总是Hello World!尽管Hello World看起来是那样的枯燥和无聊,可是就是这个程序却标志着一个新的时代。这个程序的成功就意味着我们已经走上了Ruby之路。这就如新中国的成立一样,所带来的并不是一个强大的共和国,而是我们建设社会主义伟大祖国的的美好的希望——在可以预见的未来,我们总是会拥有一个强大的共和国的。

进入cmd提示符:运行—>输入"cmd"并回车->向那个黑黑的屏幕上键入:

c:/>ruby

puts 'Hello World!'

^D

最后一行是由(Ctrl+D)输入的,之后按下回车键,你应该能够看到计算机说"Hello World"了。

接下来,我们看看能不能把这句代码放在函数里,通过传递参数来实现更多一点的功能。

如何定义函数
def hello(name)
result = "hello, " + name
return result
end
这就是一个最简单的函数定义。Ruby 以 def 开始一个函数定义,后跟着 函数名, 然后是 参数,但是参数不必非要放在括号中, 你可以这样定义 def hello name ,之所以要用括号是为了更清晰。在 ruby 中你可以用多种方式来完成同一件事情,这也是 ruby 的设计思想。

Hello 函数很简单, 将参数和 “hello, “字符串组合在一起,赋值给临时变量 result ,然后再返回 result。 你会注意到 result 变量并没有申明,因为在 ruby 中无需申明,变量在赋值中自动使用。 另外 ruby 中不需要使用 ; 来结束每个语言,只要保持每条语句在单独一行就可以。 Ruby 也不包含 {} 来定义块结构, if , when 函数都以一个 end 关键字来结束。缩进不是语法(python 程序员要失望了)。第一次使用ruby 我也有点不习惯,因为我认为python 语言的缩进语法可以使得阅读程序代码更容易一些。但是学习了一段时间后,我发现缩进语法并不是那么重要,Ruby 本身带来的帮助远比这个更重要。而且代码的易读性也不是由缩进来改善的.此外上面的代码还可以更简化。
def hello (name)
" hello, #{name}"
end
在 ruby 中,函数的最后一条语句如果是表达式,那么它就作为返回值。在上面的代码中,用到了另外一个概念,就是表达式插入,字符串可以用单引号和双引号来括起来。但是两者还是有一点区别。区别在于处理时间上的不同。如果使用单引号,那么处理的时间很短。如果使用双引号,那么你可以插入变量,表达式,还有就是转意字符的替换,最常见的是 \n,\t 等。 以上面的代码为例 字符串中插入了变量 name ,字符串中插入变量以 # 开始,变量放在{}中。 但是特殊变量可以不用 {}. 那么什么是特殊变量呢。这个也是 ruby 特别的地方。在 Ruby 中,全局变量以 $开头,静态变量,也就是类变量以 @@ 开头,实例变量以 @ 开头。如果在字符串中引用 实例变量,你可以这么写。
def hello
" hello, #@name"
end
好了,我们现在得到一个函数的实现了,你只要用以下代码就可以调用这个函数了:puts hello 'John'