Ruby

Ruby 是一门开源的动态编程语言,注重简洁和效率。

Ruby 的句法优雅,读起来自然,写起来舒适。

Install

本机环境为Mac。安装方式:

$   brew install ruby

原来不知何时已经安装了。虽然版本比较老了。

houbinbindeMacBook-Pro:~ houbinbin$ ruby --version
ruby 2.0.0p645 (2015-04-13 revision 50299) [universal.x86_64-darwin15]

Hello World

  • helloWorld.rb
#!/usr/lib/ruby

puts "hello world";

run ruby

houbinbindeMacBook-Pro:000_base houbinbin$ ruby helloWorld.rb 
hello world

世界,你好

尝试一下中文。

  • helloWorld_zh_CN.rb
#!/usr/lib/ruby

puts "世界,你好";

run ruby

houbinbindeMacBook-Pro:000_base houbinbin$ ruby helloWorld_zh_CN.rb 
世界,你好

很遗憾,这里没有乱码。如果出现乱码,可以将代码改成:

#!/usr/bin/ruby 
# -*- coding: UTF-8 -*-
 
puts "世界,你好";

基础语法

一、空白

在 Ruby 代码中的空白字符,如空格和制表符一般会被忽略,除非当它们出现在字符串中时才不会被忽略。然而,有时候它们用于解释模棱两可的语句。当启用 -w 选项时,这种解释会产生警告。

a + b # 被解释为 a+b (这是一个局部变量)
a  +b # 被解释为 a(+b) (这是一个方法调用)

二、行尾

Ruby 把分号换行符解释为语句的结尾。但是,如果 Ruby 在行尾遇到运算符,比如 +、- 或反斜杠,它们表示一个语句的延续。

三、标识符

标识符是变量、常量和方法的名称。Ruby 标识符是大小写敏感的。

Ruby 标识符的名称可以包含字母、数字和下划线字符。

四、保留字

这些保留字不能作为常量或变量的名称。但是,它们可以作为方法名。

BEGIN do next then
END else nil true
alias elsif not undef
and end or unless
begin ensure redo until
break false rescue when
case for retry while
class if return while
def in self __FILE__
defined? module super __LINE__

五、Here Document

Here Document 是指建立多行字符串。在 << 之后,您可以指定一个字符串或标识符来终止字符串,且当前行之后直到终止符为止的所有行是字符串的值。 如果终止符用引号括起,引号的类型决定了面向行的字符串类型。请注意 << 和终止符之间必须没有空格。

  • HereDoc.rb
#!/usr/bin/ruby -w
# -*- coding : utf-8 -*-
 
print <<EOF
    这是第一种方式创建here document 。
    多行字符串。
EOF
 
print <<"EOF";                # 与上面相同
    这是第二种方式创建here document 。
    多行字符串。
EOF
 
print <<`EOC`                 # 执行命令
    echo hi there
    echo lo there
EOC
 
print <<"foo", <<"bar"          # 您可以把它们进行堆叠
    I said foo.
foo
    I said bar.
bar

run ruby

houbinbindeMacBook-Pro:000_base houbinbin$ ruby HereDoc.rb 
    这是第一种方式创建here document 。
    多行字符串。
    这是第二种方式创建here document 。
    多行字符串。
hi there
lo there
    I said foo.
    I said bar.

六、 BEGIN 语句

BEGIN {
   code
}
  • begin.rb
#!/usr/bin/ruby
 
puts "这是主 Ruby 程序"
 
BEGIN {
   puts "初始化 Ruby 程序"
}

run ruby

houbinbindeMacBook-Pro:000_base houbinbin$ ruby begin.rb 
初始化 Ruby 程序
这是主 Ruby 程序

七、END 语句

BEGIN {
   code
}
  • end.rb
#!/usr/bin/ruby
 
puts "这是主 Ruby 程序"
 
END {
   puts "停止 Ruby 程序"
}
BEGIN {
   puts "初始化 Ruby 程序"
}

run ruby

初始化 Ruby 程序
这是主 Ruby 程序
停止 Ruby 程

八、注释

注释会对 Ruby 解释器隐藏一行,或者一行的一部分,或者若干行。您可以在行首使用字符( # ):

# 我是注释,请忽略我。

或者,注释可以跟着语句或表达式的同一行的后面:

name = "Madisetti" # 这也是注释

您可以注释多行,如下所示:

# 这是注释。
# 这也是注释。
# 这也是注释。
# 这还是注释。

下面是另一种形式。这种块注释会对解释器隐藏 =begin/=end 之间的行:

=begin
这是注释。
这也是注释。
这也是注释。
这还是注释。
=end