Ruby编程语言面试题库和答案
1、Ruby编程语言是什么?
Ruby 是一种动态的、反射性的、通用的、开源的编程语言,专注于简单性和生产力。Ruby 具有 Perl、small talk、Eiffel、Ada 和 Lisp 的混合特性。Ruby 旨在创建一种与命令式语言的功能取得平衡的新语言。
2、Ruby的开发者是谁?
Ruby 由 Yukihiro “martz” Matsumoto 于 1990 年中期在日本设计和开发。
3、Ruby为什么被称为灵活的语言?
Ruby 被称为灵活的语言,因为它有助于其作者更改编程元素。可以删除或重新定义语言的某些特定部分。Ruby 不限制用户。例如,要添加两个数字,Ruby 允许使用 + 号或单词“plus”。这种改变可以通过 Ruby 的内置类 Numeric 来完成。
4、Ruby有哪些特性?
Ruby有很多特性。下面列出了其中一些:
• 面向对象
• 灵活
• 动态输入和填鸭式输入
• 垃圾收集器
• 关键字参数
5、Ruby 和 Python 有什么区别?
Ruby 和 Python 相似之处: 高级语言支持多平台使用名为 irb 的交互式提示服务器端脚本语言 Ruby 和 Python 的差异: Ruby 是完全面向对象的,而 Python 不是。Ruby 支持 EclipseIDE,而 Python 支持多个 IDE。Ruby 使用 Mixins,而 Python 不使用。Ruby 支持块、proc 和 lambda,而 Python 不支持。
6、如何查看系统中安装 Ruby 版本?
要查看系统中安装 Ruby 版本,只需要在命令行提示符下输入:
ruby -v
7、Ruby中的类库是什么?
Ruby 类库包含各种领域,如线程编程、数据类型、各种领域。以下是具有相关类库的域列表:
• 文本处理
• CGI 编程
• 网络编程
• 图形用户界面编程
• XML 编程
8、Ruby中使用的运算符有哪些?
运算符是用于执行不同操作的符号,Ruby中使用的运算符如下:
• 一元运算符
• 算术运算符
• 位运算符
• 逻辑运算符
• 三元运算符
9、Ruby编程语言中的 RubyGems 是什么?
RubyGems 为分发 ruby 程序和库提供了一种标准格式。它用作 Ruby 编程语言的包管理器。RubyGems 现在是 Ruby 1.9 版标准库的一部分。
10、Ruby变量是什么?
Ruby变量保存可以稍后在程序中使用的数据。每个变量都充当内存并具有不同的名称。Ruby 中有四种类型的变量:
• 局部变量
• 类变量
• 实例变量
• 全局变量
11、Ruby 中的 nil 和 false 有什么区别?
Ruby 中的 nil 和 false 的区别如下: nil false nil不能是一个值 false 可以是一个值 如果没有谓词,则返回 nil。 如果是谓词,则方法返回 true 或 false。 nil 不是布尔数据类型 false 是布尔数据类型 nil 是 nilclass 的对象 false 是 falseclass 的对象
12、Ruby中的数据类型有哪些?
Ruby 中的 nil 和 false 的区别如下:
nil false
nil不能是一个值 false 可以是一个值
如果没有谓词,则返回 nil。 如果是谓词,则方法返回 true 或 false。
nil 不是布尔数据类型 false 是布尔数据类型
nil 是 nilclass 的对象 false 是 falseclass 的对象
13、Ruby 中的 load 和 require 有什么用?
在 Ruby 中,load 和 require 都用于将可用代码加载到当前代码中。在每次更改或每次有人点击 URL 时都需要加载代码的情况下,建议使用load。在自动加载的情况下,建议使用require。
14、Ruby if-else 语句作用是什么?
Ruby if-else 语句用于测试条件。Ruby 中有多种类型的语句。
• if 语句
• if-else 语句
• if-else-if (elsif) 语句
• 三元语句
15、Ruby 中的 case 语句的作用是什么?
在 Ruby 中,我们使用 case 代替 switch 和 when 代替 case。case语句匹配一个具有多个条件的语句,就像其他语言中的 switch 语句一样。
16、Ruby中的 for 循环作用是什么?
Ruby for 循环迭代特定范围的数字。因此,如果程序具有固定的迭代次数,则使用 for 循环。Ruby for 循环将为表达式中的每个元素执行一次。
17、Ruby 中的 while 循环作用是什么?
Ruby while 循环用于多次迭代程序。如果迭代次数不固定,程序代码中应该使用 while 循环。
18、Ruby 中的 do while 循环作用是什么?
Ruby do while 循环多次迭代程序的一部分。在这种情况下,循环将至少执行一次,因为最后写入了 do while 条件。
19、Ruby 中的 until 循环作用是什么?
Ruby 直到循环运行,直到给定条件评估为真。当条件为真时退出循环。它与while循环相反。
20、Ruby 中的 break 语句是什么?
Ruby break 语句用于终止循环。它主要用于 while 循环中,在该循环中打印值直到条件为真。
21、Ruby 中的 next 语句作用是什么?
Ruby next 语句用于跳过循环的下一次迭代。一旦执行了下一条语句,就不会执行进一步的迭代。
22、Ruby 中的 redo 语句是什么?
Ruby redo 语句用于重复循环的当前迭代。redo 语句在不评估循环条件的情况下执行。
23、Ruby 中的 retry 语句作用是什么?
Ruby retry 语句用于从头开始重复整个循环迭代。
24、在 Ruby 中如何注释代码?
Ruby 注释是程序中不可执行的行,它们不参与程序的执行。
单行注释语法:
#This is single line comment.
Ruby
多行注释语法:
=begin
This
is
multi line
comment
=end
25、Ruby Object是什么?
Object 是所有 Ruby 对象的默认根。Ruby 对象从 BasicObject 继承,它允许创建备用对象层次结构。
26、Ruby中如何创建对象?
Ruby 中的对象是通过调用类的新方法来创建的。它是一种在 Ruby 库中预定义的独特方法类型。
语法:
objectName=className.new
27、Ruby中的类是什么?
每个 Ruby 类都是 Ruby 类的一个实例。Ruby 中的类是第一类对象。它总是以关键字 class 开头,后跟类名。
语法:
class ClassName
codes…
end
28、Ruby中的方法是什么?
Ruby方法可以避免在程序中一次又一次地编写相同的代码。Ruby 方法类似于其他语言中的函数。
29、Ruby中如何定义和使用方法?
要使用 Ruby 方法,需要先定义它。它是用 def 和 end 关键字定义的。方法名称应始终以小写字母开头。
语法:
def methodName
code…
end
30、Ruby中的块是什么?
Ruby代码块在其他编程语言中称为闭包。它由一组代码组成,这些代码总是用大括号括起来或写在 do…end 之间。
31、Ruby编写块有几种方式/写法?
Ruby编写块有两种写法:
• do和end之间的多行
• 大括号之间的内联 {}
两者是相同的并且具有相同的功能。
语法:
block_name{
statement1
statement2

}
32、Ruby中的 yield 语句是什么?
yield语句用于调用具有值的方法中的块。
33、Ruby 中的 & 参数(&block)是什么?
&block是一种将块的引用(而不是局部变量)传递给方法的方法。在这里,& 后面的块词只是一个参考名称,可以使用任何其他名称来代替它。
34、Ruby中的模块是什么?
Ruby模块是方法和常量的集合。模块方法可以是实例方法或模块方法。它们类似于类,因为它们包含方法、类定义、常量和其他模块的集合。它们被定义为类。不能使用模块创建对象或子类。没有继承的模块层次结构。
模块基本上有两个目的:
• 它们充当命名空间,可以防止名称冲突。
• 它们允许 mixin 工具在类之间共享功能。
语法:
module ModuleName
statement1
statement2

end
Ruby
注意:模块名称应以大写字母开头。
35、Ruby中的模块 mixins 是什么?
Ruby不支持多重继承,模块消除了在 Ruby 中使用 mixin 的多重继承的需要。一个模块没有实例,因为它不是一个类。但是,一个模块可以包含在一个类中。当在一个类中包含一个模块时,该类将有权访问该模块的方法。
36、Ruby中的字符串是什么?
Ruby字符串对象保存和操作任意字节序列,通常表示字符。它们是使用 String::new 或作为文字创建的。
37、Ruby应用程序/代码中如何访问字符串元素?
可以在方括号 [] 的帮助下访问不同部分的 Ruby 字符串元素。在方括号内写下索引或字符串。
38、在 Ruby 中如何编写多行字符串?
用 Ruby 语言编写多行字符串非常简单。下面将展示三种打印多行字符串的方法。 字符串可以写在双引号内。使用 % 字符,字符串包含在/ 字符中。在 heredoc 语法中,使用 << 并且字符串包含在单词 STRING 中。
39、Ruby 中全局变量 $ 有什么用?
全局变量在 Ruby 中声明,可以在应用程序中的任何位置访问它,因为它在应用程序中具有完整范围。全局变量在 Ruby 中使用 $ 符号前置。
40、Ruby中的连接字符串是什么?可以通过多少种方式创建连接字符串?
Ruby连接字符串意味着从多个字符串创建一个字符串。可以通过连接多个字符串来形成单个字符串。有四种方法可以将 Ruby 字符串连接成单个字符串: 在字符串之间使用加号。在字符串之间使用一个空格。在字符串之间使用 << 登录。在字符串之间使用 concat 方法。
41、Ruby中的冻结字符串是什么?
在大多数编程语言中,字符串是不可变的。这意味着无法修改现有字符串,只能从中创建新字符串。在 Ruby 中,默认情况下字符串不是不可变的。为了使它们不可变,可以使用 freeze 方法。
42、在Ruby中有比较字符串多少种方法?
Ruby中可以使用三个运算符进行字符串比较:
• 使用 == 运算符:返回 true 或 false
• 用 eql? 运算符:返回 true 或 false
• 使用 casecmp 方法:如果匹配则返回 0,如果不匹配则返回 1
43、Ruby中的类库是什么?
Ruby类库包含各种领域,如线程编程、数据类型、各种领域。以下是具有相关类库的域列表: 文本处理CGI编程网络编程图形用户界面编程XML编程
44、Ruby中数组是什么?如何创建数组?
Ruby数组是有序的对象集合。它们可以保存整数、数字、哈希、字符串、符号或任何其他数组等对象。
它的索引从 0 开始。负索引从数组末尾的 -1 开始。例如,-1 表示数组的最后一个元素,0 表示数组的第一个元素。
Ruby 数组可以通过以下方式创建:
• 使用文字构造函数 []
• 使用新的类方法
45、如何访问 Ruby 数组元素? 有多少种方法用于访问 Ruby 数组元素?
在 Ruby 中可以使用 #[] 方法访问数组元素。可以传递一个或多个参数,甚至是一系列参数。
语法:
#[] method
Ruby
用于访问 Ruby 元素的方法:
• at方法
• slice片法
• fetch方法
• first 和 last方法
• take方法
• drop方法
46、在 Ruby 中,可以通过多少种方式将数据项添加到数组中?
Ruby 数组元素可以以不同的方式添加:
• push 或 <<
• unshift
• insert
47、从 Ruby 中的数组中删除数据项有多少种方法?
Ruby 数组元素可以通过以下几种方式删除:
• pop
• shift
• delete
• uniq
48、Ruby哈希是什么?
Ruby哈希是唯一键及其值的集合。它们类似于数组,但数组使用整数作为索引,散列使用任何对象类型。它们也称为关联数组、字典或映射。如果使用不存在的键访问哈希,则该方法将返回 nil。
49、在 Ruby 中如何创建一个新的时间实例?
可以使用 ::new 创建一个新的 Time 实例,它将使用当前系统的时间。也可以传递年、月、日、小时、分钟等部分时间。在创建新的时间实例时,您至少需要经过一年。如果仅过了一年,则时间将默认为该年 1 月 1 日的 00:00:00 与当前系统时区。
50、Ruby中的范围是什么?定义范围的方法有哪些?
Ruby范围表示一组具有开始和结束的值。它们可以使用 s…e 和 s…e 文字或 ::new 来构造。其中包含 … 的范围从头到尾都包含在内。其中有 … 的范围仅运行最终值。
Ruby有以下几种方法来定义范围:
• 范围作为序列
• 范围作为条件
• 范围作为间隔
51、Ruby迭代器是什么?
迭代器是面向对象语言中使用的概念。迭代意味着像循环一样多次做一件事。循环方法是最简单的迭代器。它们一个接一个地返回集合中的所有元素。数组和散列属于集合类别。
52、Ruby中有哪些迭代器?
Ruby 中有以下迭代器:
• each迭代器
• times迭代器
• upto迭代器和downto迭代器
• step迭代器
• each_line迭代器

53、在 Ruby 中为 IO 控制台命名不同的方法?
IO控制台提供了与控制台交互的不同方法。IO类提供以下基本方法:
• IO::console
• IO#raw#raw!
• IO#cooked
• IO#cooked!
• IO#getch
54、在 Ruby中如何打开文件?
可以使用不同的读取、写入或两者的方法来创建 Ruby 文件。
在 Ruby 中打开文件有两种方法:
• File.new方法:使用此方法可以创建一个新文件用于读取、写入或两者兼而有之。
• File.open方法:使用此方法创建一个新的文件对象。该文件对象被分配给一个文件。
这两种方法的区别在于 File.open 方法可以与块关联,而 File.new 方法不能。
语法:
f = File.new(“fileName.rb”)
Ruby
或者,
File.open(“fileName.rb”, “mode”) do |f|
55、如何在 Ruby 中读取文件?
有三种不同的方法来读取文件。要返回单行,使用以下语法:
f.gets
code…
Ruby
要在当前位置之后返回整个文件,使用以下语法:
f.rea
code…
Ruby
要将文件作为行数组返回,请使用以下语法:
f.readlines
[code…]
56、Ruby中的类库是什么?
Ruby类库包含各种领域,如线程编程、数据类型和各种领域。它有额外的库每天都在发展。以下是具有相关类库的域。
• 文本处理:文件、字符串、正则表达式,用于快速和干净的文本处理。
• CGI 编程:有支持 CGI 编程的类库,如数据库接口、eRuby、Apache 的 mod_ruby、文本处理类。
• 网络编程:ruby 中提供了各种精心设计的套接字,用于网络编程。
• GUI 编程:Ruby/Tk 和 Ruby/Gtk 是用于 GUI 编程的类
• XML 编程:UTF-8 文本处理正则表达式引擎使 ruby 中的 XML 编程非常得心应手。
57、Ruby 中的 sysread 方法是什么?
sysread 方法也用于读取文件的内容。借助此方法,可以以任何模式打开文件。
58、你将如何在 Ruby 中重命名和删除文件?
Ruby 文件使用 rename 方法重命名,并使用 delete 方法删除。要重命名文件,请使用以下语法。
重命名语法:
File.rename(“olderName.txt”, “newName.txt”);
Ruby
要删除文件,请使用以下语法:
File.delete(“filename.txt”)
59、如何在 Ruby 中重命名和删除文件?
Ruby 文件使用 rename 方法重命名,并使用 delete 方法删除。要重命名文件,请使用以下语法。
重命名语法:
File.rename(“olderName.txt”, “newName.txt”);
Ruby
要删除文件,请使用以下语法:
File.delete(“filename.txt”)
60、Ruby中如何检查目录是否存在?
检查目录是否存在可以使用:exists 和 not exists? 使用方法。
语法:
puts Dir.exists? “dirName”\n
61、Ruby异常是什么?
Ruby 异常是一个对象、Exception 类的实例或该类的后代。当出现问题时,Ruby 程序会抛出异常行为。默认情况下,Ruby 程序在抛出异常时终止。
62、Ruby内置的异常子类有哪些?
内置异常的子类如下:
• NoMemoryError
• ScriptError
• SecurityError
• SignalException
63、Ruby中如何处理异常?
为了处理异常,引发异常的代码包含在 begin-end 块中。使用 rescue 子句,可以声明想要处理的异常类型。
64、Ruby中 retry 语句如何使用?
通常在rescue子句中,异常被捕获并且代码在开始块之后恢复。使用 retry 语句,可以在捕获异常后从开始恢复rescue块代码。
语法:
begin
code…
rescue

capture exceptions

retry # program will run from the begin block
end
65、Ruby 中的 raise 语句?
raise 语句用于引发异常。
语法:
raise
Ruby
或者,
raise “Error Message”\n
Ruby
或者,
raise ExceptionType, “Error Message”\n
Ruby
或者,
raise ExceptionType, “Error Message” condition
Ruby
或者,
raise “Error Message”\n
66、Ruby 中 ensure 语句的使用?
Ruby中有一个 ensure 子句保证在代码末尾进行一些处理。无论是否引发异常,ensure块始终运行。它放置在最后一个rescue子句之后,并且总是在块终止时执行。无论是出现异常、挽救异常还是因未捕获的异常终止代码,ensure块将在任何情况下运行。
语法:
begin
code…
#…raise exception
rescue
#… exception is rescued
ensure
#… This code will always execute.
end

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐