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