运行

运行 ruby 程序有两种方法

  • ruby 命令;
  • irb 交互式 shell 命令;

ruby 命令

print("Hello, Ruby.\n")

在 shell 中执行 ruby helloruby.rb

irb 交互式 shell 运行

对于一些简单的小程序只需在 irb 下运行即可。

程序说明

nil 是 print 方法的返回值,字符串 Hello, Ruby!\n 为一个字符串对象,不仅字符串,其它的如数值、时间等各种数据都是对象。

print 是一个方法,方法就是对象的行为,print 方法的作用就是输出括号中内容,其中字符串为它的参数

字符串

转义字符跟其它语言差不多

除了创建字符串对象用双引号,也可以用单引号

单引号与双引号有一个区别,就是转义不生效了,这个需要注意一下。

方法的调用可以省略括号

如果输出参数过多,建议还是加上括号,这样便于理解,在习惯 ruby 语法之前,不要使用省略括号的写法,在一此较为简单的写法中,可以使用省略括号的写法。

puts 方法

puts 方法与 print 方法类似,但 puts 方法在输出结果的末尾一定会输出换行符

有输出效果还有一个 p 方法,它与 print 和 puts 的区别为,当输出数值 100 或字符串 “100” 时,输出显示为 100,这样无法判断结果是哪个对象,在这种情况下,p 方法有效

另外,p 方法对待转义就是不理会,不会转义

编码

编码在 rb 脚本开头用 `# encoding: 编码方式`说明,若未说明,则默认 UTF-8,若要在命令行模式下可用 -E 来指定

ruby -E UTF-8 xxxx.rb
irb -E UTF-8

数值计算与运算

–simple-prompt 会简化 irb 的输出效果

进行数学算术运算时需要加上 Math,如果不想加上 Math,则需要加上 include Math

变量

变量可以将其理解为给对象贴上标签,这个过程称为 “将对象赋值给变量”

x = 10
y = 20
z = 30

area = (x * y + y * z + z * x) * 2
volume = x * y * z
print "表面积=", area, "\n"
print "体积=", volume, "\n"
print "表面积=", area, "\n"
# 也可将上述改写为如下形式
print "表面积=#{area}\n"
# 更加简洁
put "表面积=#{area}"

注释

单行注释用 # 符号

多行注释用 =begin 与 =end 成对

控制语句

控制语句

  • 顺序
  • 条件 (if、unless、case 等)
  • 循环
  • 异常

说下异常控制,如果发生意料之外的错误,就会跳出正在执行的那部分程序,然后执行其他地方的程序 ,使用程序能够继续执行下去。

条件 if ~ then ~ end

if 条件 then
  条件成立时执行的处理
else
  条件不成立时执行的处理
end
a = 20

if a >= 10 then
  print "greater\n"
end

if a <= 9 then
  print "smaller\n"
end

= 符号在 ruby 中为赋值,若是比较相等,用 ==

循环

while

while 循环条件 do
  希望循环的处理
end
i = 1

while i <= 10 do
  print i, "\n"
  i = i + 1
end

times 方法

循环次数如果已确定,使用 times 方法更加方便

循环次数.times do
  希望循环的处理
end
100.times do
  print "All work and no play makes Jack a dull boy.\n"
end

times 为迭代器,迭代器是 ruby 的一个特色功能,循环的容器,迭代器就是指用于执行循环处理的地方。Ruby 除了 times 这个迭代器外,还提供了很多迭代器,例如 each。