Ruby对象

Ruby是 面向对象 脚本语言,在Ruby中字符串、数值、时间等各种数据都是对象:

Ruby快速起步 最简单的一行代码程序为例:

输出 Hello, Ruby. 的简单一行ruby脚本
print("Hello, Ruby.\n")

print 是方法, Hello, Ruby.\n 就是对象。在Ruby这样的面向对象的语言中,所有对象的操作,都是通过执行一种方法来实现的。

备注

print 方法类似但稍有区别的是 puts 方法:

puts 方法在输出结果的末尾一定会输出 换行符

p 方法

printputs 方法,输出数值 1 和 字符串 "1" 时候都是单纯的 1 ,此时无法判断结果是数值对象还是字符串对象,但是 p 方法会区别:

使用 printp 方法对于输出对象的区别
irb(main):007:0> print(1)
1=> nil
irb(main):008:0> print("1")
1=> nil
irb(main):009:0> p(1)
1
=> 1
irb(main):010:0> p("1")
"1"
=> "1"
  • 使用 p 方法可以方便程序调试:

使用 print 输出程序执行结果,使用 p 输出调试信息
print("Hello, \n\tRuby.\n")
p("Hello, \n\tRuby.\n")
  • 执行 ruby ruby_object/print_p_debug 可以看到输出:

执行 printp 方法可以看到不同的输出,显然 p 特别适合调试程序
Hello,
        Ruby.
"Hello, \n\tRuby.\n"

中文编码

Ruby脚本开头可以使用 魔法注释 (magic comment) 来指定程序编码,对于中文,可以使用 UTF-8 :

在程序开头可以使用 魔法注释 指定程序编码
# encoding: UTF-8

从 Ruby 2.0 开始,如果没有指定魔法注释,则默认使用 UTF-8 编码

对于命令行, ruby 可以使用 -E 参数指定编码:

ruby -E UTF-8 <脚本文件名>

参考

  • 「Ruby基础教程」